jsgantt-improved 2.8.2 → 2.8.5
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/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- package/.github/ISSUE_TEMPLATE/custom.md +0 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- package/.travis.yml +0 -0
- package/.vscode/launch.json +0 -0
- package/CONTRIBUTING.md +0 -0
- package/Documentation.md +589 -587
- package/LICENSE +0 -0
- package/README.md +27 -2
- package/dist/e2e/app.e2e-spec.js +0 -0
- package/dist/e2e/app.e2e-spec.js.map +0 -0
- package/dist/e2e/app.po.js +0 -0
- package/dist/e2e/app.po.js.map +0 -0
- package/dist/index.js +0 -0
- package/dist/index.js.map +0 -0
- package/dist/jsgantt.css +1016 -1012
- package/dist/jsgantt.js +1126 -887
- package/dist/src/draw.js +226 -227
- package/dist/src/draw.js.map +1 -1
- package/dist/src/draw_columns.js +0 -0
- package/dist/src/draw_columns.js.map +0 -0
- package/dist/src/draw_dependencies.js +0 -0
- package/dist/src/draw_dependencies.js.map +0 -0
- package/dist/src/events.js +0 -0
- package/dist/src/events.js.map +0 -0
- package/dist/src/jsgantt.js +0 -0
- package/dist/src/jsgantt.js.map +0 -0
- package/dist/src/json.js +6 -1
- package/dist/src/json.js.map +1 -1
- package/dist/src/lang.js +877 -652
- package/dist/src/lang.js.map +1 -1
- package/dist/src/options.js +0 -0
- package/dist/src/options.js.map +0 -0
- package/dist/src/task.js +8 -3
- package/dist/src/task.js.map +1 -1
- package/dist/src/utils/date_utils.js +0 -0
- package/dist/src/utils/date_utils.js.map +0 -0
- package/dist/src/utils/draw_utils.js +0 -0
- package/dist/src/utils/draw_utils.js.map +0 -0
- package/dist/src/utils/general_utils.js +3 -2
- package/dist/src/utils/general_utils.js.map +1 -1
- package/dist/src/xml.js +6 -2
- package/dist/src/xml.js.map +1 -1
- package/dist/test/index.js +0 -0
- package/dist/test/index.js.map +0 -0
- package/docs/DotNet.md +0 -0
- package/docs/demo-plan-color.html +282 -0
- package/docs/demo.gif +0 -0
- package/docs/demo.html +273 -275
- package/docs/demo.png +0 -0
- package/docs/demobigdata.html +0 -0
- package/docs/fixes/bigdata.json +0 -0
- package/docs/fixes/bug141.json +0 -0
- package/docs/fixes/bug277.json +0 -0
- package/docs/fixes/bug318.json +0 -0
- package/docs/fixes/data-plan-color.json +177 -0
- package/docs/fixes/data.json +0 -0
- package/docs/fixes/data255.json +0 -0
- package/docs/fixes/general.html +0 -0
- package/docs/fixes/lang.html +0 -0
- package/docs/fixes/planend.json +0 -0
- package/docs/fixes/two-weaksafter.html +0 -0
- package/docs/home-bg.jpg +0 -0
- package/docs/index.html +0 -0
- package/docs/index.js +266 -278
- package/docs/main.css +0 -0
- package/docs/main.js +0 -0
- package/docs/project.xml +132 -131
- package/e2e/tsconfig.e2e.json +0 -0
- package/package.json +49 -49
- package/protractor.conf.js +0 -0
- package/src/jsgantt.css +1016 -1012
- package/test/index.html +0 -0
- package/tsconfig.json +0 -0
- package/tslint.json +0 -0
package/dist/src/draw.js
CHANGED
|
@@ -53,7 +53,7 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
53
53
|
3: true,
|
|
54
54
|
4: true,
|
|
55
55
|
5: true,
|
|
56
|
-
6: true
|
|
56
|
+
6: true,
|
|
57
57
|
};
|
|
58
58
|
this.vEventClickCollapse = null;
|
|
59
59
|
this.vEventClickRow = null;
|
|
@@ -72,7 +72,7 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
72
72
|
beforeLineDraw: null,
|
|
73
73
|
afterLineDraw: null,
|
|
74
74
|
onLineDraw: null,
|
|
75
|
-
onLineContainerHover: null
|
|
75
|
+
onLineContainerHover: null,
|
|
76
76
|
};
|
|
77
77
|
this.vEventsChange = {
|
|
78
78
|
taskname: null,
|
|
@@ -84,36 +84,36 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
84
84
|
planstartdate: null,
|
|
85
85
|
planenddate: null,
|
|
86
86
|
cost: null,
|
|
87
|
-
line: null
|
|
87
|
+
line: null,
|
|
88
88
|
};
|
|
89
89
|
this.vResources = null;
|
|
90
90
|
this.vAdditionalHeaders = {};
|
|
91
91
|
this.vColumnOrder = draw_columns_1.COLUMN_ORDER;
|
|
92
92
|
this.vEditable = false;
|
|
93
93
|
this.vDebug = false;
|
|
94
|
-
this.vShowSelector = new Array(
|
|
95
|
-
this.vDateInputFormat =
|
|
96
|
-
this.vDateTaskTableDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
97
|
-
this.vDateTaskDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
98
|
-
this.vHourMajorDateDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
99
|
-
this.vHourMinorDateDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
100
|
-
this.vDayMajorDateDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
101
|
-
this.vDayMinorDateDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
102
|
-
this.vWeekMajorDateDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
103
|
-
this.vWeekMinorDateDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
104
|
-
this.vMonthMajorDateDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
105
|
-
this.vMonthMinorDateDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
106
|
-
this.vQuarterMajorDateDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
107
|
-
this.vQuarterMinorDateDisplayFormat = date_utils_1.parseDateFormatStr(
|
|
108
|
-
this.vUseFullYear = date_utils_1.parseDateFormatStr(
|
|
94
|
+
this.vShowSelector = new Array("top");
|
|
95
|
+
this.vDateInputFormat = "yyyy-mm-dd";
|
|
96
|
+
this.vDateTaskTableDisplayFormat = date_utils_1.parseDateFormatStr("dd/mm/yyyy");
|
|
97
|
+
this.vDateTaskDisplayFormat = date_utils_1.parseDateFormatStr("dd month yyyy");
|
|
98
|
+
this.vHourMajorDateDisplayFormat = date_utils_1.parseDateFormatStr("day dd month yyyy");
|
|
99
|
+
this.vHourMinorDateDisplayFormat = date_utils_1.parseDateFormatStr("HH");
|
|
100
|
+
this.vDayMajorDateDisplayFormat = date_utils_1.parseDateFormatStr("dd/mm/yyyy");
|
|
101
|
+
this.vDayMinorDateDisplayFormat = date_utils_1.parseDateFormatStr("dd");
|
|
102
|
+
this.vWeekMajorDateDisplayFormat = date_utils_1.parseDateFormatStr("yyyy");
|
|
103
|
+
this.vWeekMinorDateDisplayFormat = date_utils_1.parseDateFormatStr("dd/mm");
|
|
104
|
+
this.vMonthMajorDateDisplayFormat = date_utils_1.parseDateFormatStr("yyyy");
|
|
105
|
+
this.vMonthMinorDateDisplayFormat = date_utils_1.parseDateFormatStr("mon");
|
|
106
|
+
this.vQuarterMajorDateDisplayFormat = date_utils_1.parseDateFormatStr("yyyy");
|
|
107
|
+
this.vQuarterMinorDateDisplayFormat = date_utils_1.parseDateFormatStr("qq");
|
|
108
|
+
this.vUseFullYear = date_utils_1.parseDateFormatStr("dd/mm/yyyy");
|
|
109
109
|
this.vCaptionType;
|
|
110
110
|
this.vDepId = 1;
|
|
111
111
|
this.vTaskList = new Array();
|
|
112
|
-
this.vFormatArr = new Array(
|
|
112
|
+
this.vFormatArr = new Array("hour", "day", "week", "month", "quarter");
|
|
113
113
|
this.vMonthDaysArr = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
|
|
114
114
|
this.vProcessNeeded = true;
|
|
115
115
|
this.vMinGpLen = 8;
|
|
116
|
-
this.vScrollTo =
|
|
116
|
+
this.vScrollTo = "";
|
|
117
117
|
this.vHourColWidth = 18;
|
|
118
118
|
this.vDayColWidth = 18;
|
|
119
119
|
this.vWeekColWidth = 36;
|
|
@@ -122,7 +122,7 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
122
122
|
this.vRowHeight = 20;
|
|
123
123
|
this.vTodayPx = -1;
|
|
124
124
|
this.vLangs = lang;
|
|
125
|
-
this.vLang = navigator.language && navigator.language in lang ? navigator.language :
|
|
125
|
+
this.vLang = navigator.language && navigator.language in lang ? navigator.language : "en";
|
|
126
126
|
this.vChartBody = null;
|
|
127
127
|
this.vChartHead = null;
|
|
128
128
|
this.vListBody = null;
|
|
@@ -156,10 +156,9 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
156
156
|
this.printChart = general_utils_1.printChart.bind(this);
|
|
157
157
|
this.clearDependencies = function () {
|
|
158
158
|
var parent = this.getLines();
|
|
159
|
-
if (this.vEventsChange.line &&
|
|
160
|
-
|
|
161
|
-
this.
|
|
162
|
-
this.addListener('click', this.vEventsChange.line, parent);
|
|
159
|
+
if (this.vEventsChange.line && typeof this.vEventsChange.line === "function") {
|
|
160
|
+
this.removeListener("click", this.vEventsChange.line, parent);
|
|
161
|
+
this.addListener("click", this.vEventsChange.line, parent);
|
|
163
162
|
}
|
|
164
163
|
while (parent.hasChildNodes())
|
|
165
164
|
parent.removeChild(parent.firstChild);
|
|
@@ -167,20 +166,20 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
167
166
|
};
|
|
168
167
|
this.drawListHead = function (vLeftHeader) {
|
|
169
168
|
var _this = this;
|
|
170
|
-
var vTmpDiv = draw_utils_1.newNode(vLeftHeader,
|
|
169
|
+
var vTmpDiv = draw_utils_1.newNode(vLeftHeader, "div", this.vDivId + "glisthead", "glistlbl gcontainercol");
|
|
171
170
|
var gListLbl = vTmpDiv;
|
|
172
171
|
this.setListBody(vTmpDiv);
|
|
173
|
-
var vTmpTab = draw_utils_1.newNode(vTmpDiv,
|
|
174
|
-
var vTmpTBody = draw_utils_1.newNode(vTmpTab,
|
|
175
|
-
var vTmpRow = draw_utils_1.newNode(vTmpTBody,
|
|
176
|
-
draw_utils_1.newNode(vTmpRow,
|
|
177
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
178
|
-
vTmpCell.appendChild(this.drawSelector(
|
|
179
|
-
vTmpRow = draw_utils_1.newNode(vTmpTBody,
|
|
180
|
-
draw_utils_1.newNode(vTmpRow,
|
|
181
|
-
draw_utils_1.newNode(vTmpRow,
|
|
172
|
+
var vTmpTab = draw_utils_1.newNode(vTmpDiv, "table", null, "gtasktableh");
|
|
173
|
+
var vTmpTBody = draw_utils_1.newNode(vTmpTab, "tbody");
|
|
174
|
+
var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr");
|
|
175
|
+
draw_utils_1.newNode(vTmpRow, "td", null, "gtasklist", "\u00A0");
|
|
176
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gspanning gtaskname", null, null, null, null, this.getColumnOrder().length + 1);
|
|
177
|
+
vTmpCell.appendChild(this.drawSelector("top"));
|
|
178
|
+
vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr");
|
|
179
|
+
draw_utils_1.newNode(vTmpRow, "td", null, "gtasklist", "\u00A0");
|
|
180
|
+
draw_utils_1.newNode(vTmpRow, "td", null, "gtaskname", "\u00A0");
|
|
182
181
|
this.getColumnOrder().forEach(function (column) {
|
|
183
|
-
if (_this[column] == 1 || column ===
|
|
182
|
+
if (_this[column] == 1 || column === "vAdditionalHeaders") {
|
|
184
183
|
draw_columns_1.draw_task_headings(column, vTmpRow, _this.vLangs, _this.vLang, _this.vAdditionalHeaders, _this.vEvents);
|
|
185
184
|
}
|
|
186
185
|
});
|
|
@@ -188,38 +187,38 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
188
187
|
};
|
|
189
188
|
this.drawListBody = function (vLeftHeader) {
|
|
190
189
|
var _this = this;
|
|
191
|
-
var vTmpContentTabOuterWrapper = draw_utils_1.newNode(vLeftHeader,
|
|
192
|
-
var vTmpContentTabWrapper = draw_utils_1.newNode(vTmpContentTabOuterWrapper,
|
|
190
|
+
var vTmpContentTabOuterWrapper = draw_utils_1.newNode(vLeftHeader, "div", null, "gtasktableouterwrapper");
|
|
191
|
+
var vTmpContentTabWrapper = draw_utils_1.newNode(vTmpContentTabOuterWrapper, "div", null, "gtasktablewrapper");
|
|
193
192
|
vTmpContentTabWrapper.style.width = "calc(100% + " + general_utils_1.getScrollbarWidth() + "px)";
|
|
194
|
-
var vTmpContentTab = draw_utils_1.newNode(vTmpContentTabWrapper,
|
|
195
|
-
var vTmpContentTBody = draw_utils_1.newNode(vTmpContentTab,
|
|
193
|
+
var vTmpContentTab = draw_utils_1.newNode(vTmpContentTabWrapper, "table", null, "gtasktable");
|
|
194
|
+
var vTmpContentTBody = draw_utils_1.newNode(vTmpContentTab, "tbody");
|
|
196
195
|
var vNumRows = 0;
|
|
197
196
|
var _loop_1 = function (i) {
|
|
198
197
|
var vBGColor = void 0;
|
|
199
198
|
if (this_1.vTaskList[i].getGroup() == 1)
|
|
200
|
-
vBGColor =
|
|
199
|
+
vBGColor = "ggroupitem";
|
|
201
200
|
else
|
|
202
|
-
vBGColor =
|
|
201
|
+
vBGColor = "glineitem a";
|
|
203
202
|
var vID = this_1.vTaskList[i].getID();
|
|
204
203
|
var vTmpRow_1, vTmpCell_1 = void 0;
|
|
205
|
-
if (
|
|
204
|
+
if (!(this_1.vTaskList[i].getParItem() && this_1.vTaskList[i].getParItem().getGroup() == 2) || this_1.vTaskList[i].getGroup() == 2) {
|
|
206
205
|
if (this_1.vTaskList[i].getVisible() == 0)
|
|
207
|
-
vTmpRow_1 = draw_utils_1.newNode(vTmpContentTBody,
|
|
206
|
+
vTmpRow_1 = draw_utils_1.newNode(vTmpContentTBody, "tr", this_1.vDivId + "child_" + vID, "gname " + vBGColor, null, null, null, "none");
|
|
208
207
|
else
|
|
209
|
-
vTmpRow_1 = draw_utils_1.newNode(vTmpContentTBody,
|
|
208
|
+
vTmpRow_1 = draw_utils_1.newNode(vTmpContentTBody, "tr", this_1.vDivId + "child_" + vID, "gname " + vBGColor);
|
|
210
209
|
this_1.vTaskList[i].setListChildRow(vTmpRow_1);
|
|
211
|
-
draw_utils_1.newNode(vTmpRow_1,
|
|
212
|
-
var editableClass = this_1.vEditable ?
|
|
213
|
-
vTmpCell_1 = draw_utils_1.newNode(vTmpRow_1,
|
|
214
|
-
var vCellContents =
|
|
210
|
+
draw_utils_1.newNode(vTmpRow_1, "td", null, "gtasklist", "\u00A0");
|
|
211
|
+
var editableClass = this_1.vEditable ? "gtaskname gtaskeditable" : "gtaskname";
|
|
212
|
+
vTmpCell_1 = draw_utils_1.newNode(vTmpRow_1, "td", null, editableClass);
|
|
213
|
+
var vCellContents = "";
|
|
215
214
|
for (var j = 1; j < this_1.vTaskList[i].getLevel(); j++) {
|
|
216
|
-
vCellContents +=
|
|
215
|
+
vCellContents += "\u00A0\u00A0\u00A0\u00A0";
|
|
217
216
|
}
|
|
218
217
|
var task_2 = this_1.vTaskList[i];
|
|
219
218
|
var vEventClickRow_1 = this_1.vEventClickRow;
|
|
220
219
|
var vEventClickCollapse_1 = this_1.vEventClickCollapse;
|
|
221
|
-
events_1.addListener(
|
|
222
|
-
if (e.target.classList.contains(
|
|
220
|
+
events_1.addListener("click", function (e) {
|
|
221
|
+
if (e.target.classList.contains("gfoldercollapse") === false) {
|
|
223
222
|
if (vEventClickRow_1 && typeof vEventClickRow_1 === "function") {
|
|
224
223
|
vEventClickRow_1(task_2);
|
|
225
224
|
}
|
|
@@ -231,29 +230,29 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
231
230
|
}
|
|
232
231
|
}, vTmpRow_1);
|
|
233
232
|
if (this_1.vTaskList[i].getGroup() == 1) {
|
|
234
|
-
var vTmpDiv = draw_utils_1.newNode(vTmpCell_1,
|
|
235
|
-
var vTmpSpan = draw_utils_1.newNode(vTmpDiv,
|
|
233
|
+
var vTmpDiv = draw_utils_1.newNode(vTmpCell_1, "div", null, null, vCellContents);
|
|
234
|
+
var vTmpSpan = draw_utils_1.newNode(vTmpDiv, "span", this_1.vDivId + "group_" + vID, "gfoldercollapse", this_1.vTaskList[i].getOpen() == 1 ? "-" : "+");
|
|
236
235
|
this_1.vTaskList[i].setGroupSpan(vTmpSpan);
|
|
237
236
|
events_1.addFolderListeners(this_1, vTmpSpan, vID);
|
|
238
|
-
var divTask = document.createElement(
|
|
239
|
-
divTask.innerHTML =
|
|
237
|
+
var divTask = document.createElement("span");
|
|
238
|
+
divTask.innerHTML = "\u00A0" + this_1.vTaskList[i].getName();
|
|
240
239
|
vTmpDiv.appendChild(divTask);
|
|
241
240
|
// const text = makeInput(this.vTaskList[i].getName(), this.vEditable, 'text');
|
|
242
241
|
// vTmpDiv.appendChild(document.createNode(text));
|
|
243
242
|
var callback = function (task, e) { return task.setName(e.target.value); };
|
|
244
|
-
events_1.addListenerInputCell(vTmpCell_1, this_1.vEventsChange, callback, this_1.vTaskList, i,
|
|
245
|
-
events_1.addListenerClickCell(vTmpDiv, this_1.vEvents, this_1.vTaskList[i],
|
|
243
|
+
events_1.addListenerInputCell(vTmpCell_1, this_1.vEventsChange, callback, this_1.vTaskList, i, "taskname", this_1.Draw.bind(this_1));
|
|
244
|
+
events_1.addListenerClickCell(vTmpDiv, this_1.vEvents, this_1.vTaskList[i], "taskname");
|
|
246
245
|
}
|
|
247
246
|
else {
|
|
248
|
-
vCellContents +=
|
|
249
|
-
var text = draw_utils_1.makeInput(this_1.vTaskList[i].getName(), this_1.vEditable,
|
|
250
|
-
var vTmpDiv = draw_utils_1.newNode(vTmpCell_1,
|
|
247
|
+
vCellContents += "\u00A0\u00A0\u00A0\u00A0";
|
|
248
|
+
var text = draw_utils_1.makeInput(this_1.vTaskList[i].getName(), this_1.vEditable, "text");
|
|
249
|
+
var vTmpDiv = draw_utils_1.newNode(vTmpCell_1, "div", null, null, vCellContents + text);
|
|
251
250
|
var callback = function (task, e) { return task.setName(e.target.value); };
|
|
252
|
-
events_1.addListenerInputCell(vTmpCell_1, this_1.vEventsChange, callback, this_1.vTaskList, i,
|
|
253
|
-
events_1.addListenerClickCell(vTmpCell_1, this_1.vEvents, this_1.vTaskList[i],
|
|
251
|
+
events_1.addListenerInputCell(vTmpCell_1, this_1.vEventsChange, callback, this_1.vTaskList, i, "taskname", this_1.Draw.bind(this_1));
|
|
252
|
+
events_1.addListenerClickCell(vTmpCell_1, this_1.vEvents, this_1.vTaskList[i], "taskname");
|
|
254
253
|
}
|
|
255
254
|
this_1.getColumnOrder().forEach(function (column) {
|
|
256
|
-
if (_this[column] == 1 || column ===
|
|
255
|
+
if (_this[column] == 1 || column === "vAdditionalHeaders") {
|
|
257
256
|
draw_columns_1.draw_header(column, i, vTmpRow_1, _this.vTaskList, _this.vEditable, _this.vEventsChange, _this.vEvents, _this.vDateTaskTableDisplayFormat, _this.vAdditionalHeaders, _this.vFormat, _this.vLangs, _this.vLang, _this.vResources, _this.Draw.bind(_this));
|
|
258
257
|
}
|
|
259
258
|
});
|
|
@@ -266,23 +265,21 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
266
265
|
}
|
|
267
266
|
// Render no daa in the chart
|
|
268
267
|
if (this.vTaskList.length == 0) {
|
|
269
|
-
var totalColumns = this.getColumnOrder()
|
|
270
|
-
|
|
271
|
-
.length;
|
|
272
|
-
var vTmpRow_2 = draw_utils_1.newNode(vTmpContentTBody, 'tr', this.vDivId + 'child_', 'gname ');
|
|
268
|
+
var totalColumns = this.getColumnOrder().filter(function (column) { return _this[column] == 1 || column === "vAdditionalHeaders"; }).length;
|
|
269
|
+
var vTmpRow_2 = draw_utils_1.newNode(vTmpContentTBody, "tr", this.vDivId + "child_", "gname ");
|
|
273
270
|
// this.vTaskList[i].setListChildRow(vTmpRow);
|
|
274
|
-
var vTmpCell_2 = draw_utils_1.newNode(vTmpRow_2,
|
|
271
|
+
var vTmpCell_2 = draw_utils_1.newNode(vTmpRow_2, "td", null, "gtasknolist", "", null, null, null, totalColumns);
|
|
275
272
|
var vOutput = document.createDocumentFragment();
|
|
276
|
-
draw_utils_1.newNode(vOutput,
|
|
273
|
+
draw_utils_1.newNode(vOutput, "div", null, "gtasknolist-label", this.vLangs[this.vLang]["nodata"] + ".");
|
|
277
274
|
vTmpCell_2.appendChild(vOutput);
|
|
278
275
|
}
|
|
279
276
|
// DRAW the date format selector at bottom left.
|
|
280
|
-
var vTmpRow = draw_utils_1.newNode(vTmpContentTBody,
|
|
281
|
-
draw_utils_1.newNode(vTmpRow,
|
|
282
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
283
|
-
vTmpCell.appendChild(this.drawSelector(
|
|
277
|
+
var vTmpRow = draw_utils_1.newNode(vTmpContentTBody, "tr");
|
|
278
|
+
draw_utils_1.newNode(vTmpRow, "td", null, "gtasklist", "\u00A0");
|
|
279
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gspanning gtaskname");
|
|
280
|
+
vTmpCell.appendChild(this.drawSelector("bottom"));
|
|
284
281
|
this.getColumnOrder().forEach(function (column) {
|
|
285
|
-
if (_this[column] == 1 || column ===
|
|
282
|
+
if (_this[column] == 1 || column === "vAdditionalHeaders") {
|
|
286
283
|
draw_columns_1.draw_bottom(column, vTmpRow, _this.vAdditionalHeaders);
|
|
287
284
|
}
|
|
288
285
|
});
|
|
@@ -292,7 +289,7 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
292
289
|
// newNode(vTmpDiv2, 'br');
|
|
293
290
|
return {
|
|
294
291
|
vNumRows: vNumRows,
|
|
295
|
-
vTmpContentTabWrapper: vTmpContentTabWrapper
|
|
292
|
+
vTmpContentTabWrapper: vTmpContentTabWrapper,
|
|
296
293
|
};
|
|
297
294
|
};
|
|
298
295
|
/**
|
|
@@ -302,15 +299,15 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
302
299
|
*/
|
|
303
300
|
this.drawChartHead = function (vMinDate, vMaxDate, vColWidth, vNumRows) {
|
|
304
301
|
var vRightHeader = document.createDocumentFragment();
|
|
305
|
-
var vTmpDiv = draw_utils_1.newNode(vRightHeader,
|
|
302
|
+
var vTmpDiv = draw_utils_1.newNode(vRightHeader, "div", this.vDivId + "gcharthead", "gchartlbl gcontainercol");
|
|
306
303
|
var gChartLbl = vTmpDiv;
|
|
307
304
|
this.setChartHead(vTmpDiv);
|
|
308
|
-
var vTmpTab = draw_utils_1.newNode(vTmpDiv,
|
|
309
|
-
var vTmpTBody = draw_utils_1.newNode(vTmpTab,
|
|
310
|
-
var vTmpRow = draw_utils_1.newNode(vTmpTBody,
|
|
305
|
+
var vTmpTab = draw_utils_1.newNode(vTmpDiv, "table", this.vDivId + "chartTableh", "gcharttableh");
|
|
306
|
+
var vTmpTBody = draw_utils_1.newNode(vTmpTab, "tbody");
|
|
307
|
+
var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr");
|
|
311
308
|
var vTmpDate = new Date();
|
|
312
309
|
vTmpDate.setFullYear(vMinDate.getFullYear(), vMinDate.getMonth(), vMinDate.getDate());
|
|
313
|
-
if (this.vFormat ==
|
|
310
|
+
if (this.vFormat == "hour")
|
|
314
311
|
vTmpDate.setHours(vMinDate.getHours());
|
|
315
312
|
else
|
|
316
313
|
vTmpDate.setHours(0);
|
|
@@ -320,90 +317,88 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
320
317
|
var vColSpan = 1;
|
|
321
318
|
// Major Date Header
|
|
322
319
|
while (vTmpDate.getTime() <= vMaxDate.getTime()) {
|
|
323
|
-
var vHeaderCellClass =
|
|
324
|
-
var vCellContents =
|
|
325
|
-
if (this.vFormat ==
|
|
320
|
+
var vHeaderCellClass = "gmajorheading";
|
|
321
|
+
var vCellContents = "";
|
|
322
|
+
if (this.vFormat == "day") {
|
|
326
323
|
var colspan = 7;
|
|
327
324
|
if (!this.vShowWeekends) {
|
|
328
|
-
vHeaderCellClass +=
|
|
325
|
+
vHeaderCellClass += " headweekends";
|
|
329
326
|
colspan = 5;
|
|
330
327
|
}
|
|
331
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
328
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vHeaderCellClass, null, null, null, null, colspan);
|
|
332
329
|
vCellContents += date_utils_1.formatDateStr(vTmpDate, this.vDayMajorDateDisplayFormat, this.vLangs[this.vLang]);
|
|
333
330
|
vTmpDate.setDate(vTmpDate.getDate() + 6);
|
|
334
331
|
if (this.vShowEndWeekDate == 1)
|
|
335
|
-
vCellContents +=
|
|
336
|
-
draw_utils_1.newNode(vTmpCell,
|
|
332
|
+
vCellContents += " - " + date_utils_1.formatDateStr(vTmpDate, this.vDayMajorDateDisplayFormat, this.vLangs[this.vLang]);
|
|
333
|
+
draw_utils_1.newNode(vTmpCell, "div", null, null, vCellContents, vColWidth * colspan);
|
|
337
334
|
vTmpDate.setDate(vTmpDate.getDate() + 1);
|
|
338
335
|
}
|
|
339
|
-
else if (this.vFormat ==
|
|
340
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
341
|
-
draw_utils_1.newNode(vTmpCell,
|
|
336
|
+
else if (this.vFormat == "week") {
|
|
337
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vHeaderCellClass, null, vColWidth);
|
|
338
|
+
draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vWeekMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
|
|
342
339
|
vTmpDate.setDate(vTmpDate.getDate() + 7);
|
|
343
340
|
}
|
|
344
|
-
else if (this.vFormat ==
|
|
345
|
-
vColSpan =
|
|
341
|
+
else if (this.vFormat == "month") {
|
|
342
|
+
vColSpan = 12 - vTmpDate.getMonth();
|
|
346
343
|
if (vTmpDate.getFullYear() == vMaxDate.getFullYear())
|
|
347
|
-
vColSpan -=
|
|
348
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
349
|
-
draw_utils_1.newNode(vTmpCell,
|
|
344
|
+
vColSpan -= 11 - vMaxDate.getMonth();
|
|
345
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vHeaderCellClass, null, null, null, null, vColSpan);
|
|
346
|
+
draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vMonthMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
|
|
350
347
|
vTmpDate.setFullYear(vTmpDate.getFullYear() + 1, 0, 1);
|
|
351
348
|
}
|
|
352
|
-
else if (this.vFormat ==
|
|
353
|
-
vColSpan =
|
|
349
|
+
else if (this.vFormat == "quarter") {
|
|
350
|
+
vColSpan = 4 - Math.floor(vTmpDate.getMonth() / 3);
|
|
354
351
|
if (vTmpDate.getFullYear() == vMaxDate.getFullYear())
|
|
355
|
-
vColSpan -=
|
|
356
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
357
|
-
draw_utils_1.newNode(vTmpCell,
|
|
352
|
+
vColSpan -= 3 - Math.floor(vMaxDate.getMonth() / 3);
|
|
353
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vHeaderCellClass, null, null, null, null, vColSpan);
|
|
354
|
+
draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vQuarterMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
|
|
358
355
|
vTmpDate.setFullYear(vTmpDate.getFullYear() + 1, 0, 1);
|
|
359
356
|
}
|
|
360
|
-
else if (this.vFormat ==
|
|
361
|
-
vColSpan =
|
|
362
|
-
if (vTmpDate.getFullYear() == vMaxDate.getFullYear() &&
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vHeaderCellClass, null, null, null, null, vColSpan);
|
|
367
|
-
draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vHourMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
|
|
357
|
+
else if (this.vFormat == "hour") {
|
|
358
|
+
vColSpan = 24 - vTmpDate.getHours();
|
|
359
|
+
if (vTmpDate.getFullYear() == vMaxDate.getFullYear() && vTmpDate.getMonth() == vMaxDate.getMonth() && vTmpDate.getDate() == vMaxDate.getDate())
|
|
360
|
+
vColSpan -= 23 - vMaxDate.getHours();
|
|
361
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vHeaderCellClass, null, null, null, null, vColSpan);
|
|
362
|
+
draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vHourMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
|
|
368
363
|
vTmpDate.setHours(0);
|
|
369
364
|
vTmpDate.setDate(vTmpDate.getDate() + 1);
|
|
370
365
|
}
|
|
371
366
|
}
|
|
372
|
-
vTmpRow = draw_utils_1.newNode(vTmpTBody,
|
|
367
|
+
vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", null, "footerdays");
|
|
373
368
|
// Minor Date header and Cell Rows
|
|
374
369
|
vTmpDate.setFullYear(vMinDate.getFullYear(), vMinDate.getMonth(), vMinDate.getDate()); // , vMinDate.getHours()
|
|
375
|
-
if (this.vFormat ==
|
|
370
|
+
if (this.vFormat == "hour")
|
|
376
371
|
vTmpDate.setHours(vMinDate.getHours());
|
|
377
372
|
var vNumCols = 0;
|
|
378
373
|
while (vTmpDate.getTime() <= vMaxDate.getTime()) {
|
|
379
|
-
var vMinorHeaderCellClass =
|
|
380
|
-
if (this.vFormat ==
|
|
374
|
+
var vMinorHeaderCellClass = "gminorheading";
|
|
375
|
+
if (this.vFormat == "day") {
|
|
381
376
|
if (vTmpDate.getDay() % 6 == 0) {
|
|
382
377
|
if (!this.vShowWeekends) {
|
|
383
378
|
vTmpDate.setDate(vTmpDate.getDate() + 1);
|
|
384
379
|
continue;
|
|
385
380
|
}
|
|
386
|
-
vMinorHeaderCellClass +=
|
|
381
|
+
vMinorHeaderCellClass += "wkend";
|
|
387
382
|
}
|
|
388
383
|
if (vTmpDate <= vMaxDate) {
|
|
389
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
390
|
-
draw_utils_1.newNode(vTmpCell,
|
|
384
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass);
|
|
385
|
+
draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vDayMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
|
|
391
386
|
vNumCols++;
|
|
392
387
|
}
|
|
393
388
|
vTmpDate.setDate(vTmpDate.getDate() + 1);
|
|
394
389
|
}
|
|
395
|
-
else if (this.vFormat ==
|
|
390
|
+
else if (this.vFormat == "week") {
|
|
396
391
|
if (vTmpDate <= vMaxDate) {
|
|
397
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
398
|
-
draw_utils_1.newNode(vTmpCell,
|
|
392
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass);
|
|
393
|
+
draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vWeekMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
|
|
399
394
|
vNumCols++;
|
|
400
395
|
}
|
|
401
396
|
vTmpDate.setDate(vTmpDate.getDate() + 7);
|
|
402
397
|
}
|
|
403
|
-
else if (this.vFormat ==
|
|
398
|
+
else if (this.vFormat == "month") {
|
|
404
399
|
if (vTmpDate <= vMaxDate) {
|
|
405
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
406
|
-
draw_utils_1.newNode(vTmpCell,
|
|
400
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass);
|
|
401
|
+
draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vMonthMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
|
|
407
402
|
vNumCols++;
|
|
408
403
|
}
|
|
409
404
|
vTmpDate.setDate(vTmpDate.getDate() + 1);
|
|
@@ -411,22 +406,22 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
411
406
|
vTmpDate.setDate(vTmpDate.getDate() + 1);
|
|
412
407
|
}
|
|
413
408
|
}
|
|
414
|
-
else if (this.vFormat ==
|
|
409
|
+
else if (this.vFormat == "quarter") {
|
|
415
410
|
if (vTmpDate <= vMaxDate) {
|
|
416
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
417
|
-
draw_utils_1.newNode(vTmpCell,
|
|
411
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass);
|
|
412
|
+
draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vQuarterMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
|
|
418
413
|
vNumCols++;
|
|
419
414
|
}
|
|
420
415
|
vTmpDate.setDate(vTmpDate.getDate() + 81);
|
|
421
416
|
while (vTmpDate.getDate() > 1)
|
|
422
417
|
vTmpDate.setDate(vTmpDate.getDate() + 1);
|
|
423
418
|
}
|
|
424
|
-
else if (this.vFormat ==
|
|
419
|
+
else if (this.vFormat == "hour") {
|
|
425
420
|
for (var i = vTmpDate.getHours(); i < 24; i++) {
|
|
426
421
|
vTmpDate.setHours(i); //works around daylight savings but may look a little odd on days where the clock goes forward
|
|
427
422
|
if (vTmpDate <= vMaxDate) {
|
|
428
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
429
|
-
draw_utils_1.newNode(vTmpCell,
|
|
423
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass);
|
|
424
|
+
draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vHourMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
|
|
430
425
|
vNumCols++;
|
|
431
426
|
}
|
|
432
427
|
}
|
|
@@ -436,18 +431,18 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
436
431
|
}
|
|
437
432
|
var vDateRow = vTmpRow;
|
|
438
433
|
// Calculate size of grids : Plus 3 because 1 border left + 2 of paddings
|
|
439
|
-
var vTaskLeftPx =
|
|
434
|
+
var vTaskLeftPx = vNumCols * (vColWidth + 3) + 1;
|
|
440
435
|
// Fix a small space at the end for day
|
|
441
|
-
if (this.vFormat ===
|
|
436
|
+
if (this.vFormat === "day") {
|
|
442
437
|
vTaskLeftPx += 2;
|
|
443
438
|
}
|
|
444
|
-
vTmpTab.style.width = vTaskLeftPx +
|
|
439
|
+
vTmpTab.style.width = vTaskLeftPx + "px"; // Ensure that the headings has exactly the same width as the chart grid
|
|
445
440
|
// const vTaskPlanLeftPx = (vNumCols * (vColWidth + 3)) + 1;
|
|
446
441
|
var vSingleCell = false;
|
|
447
|
-
if (this.vUseSingleCell !== 0 && this.vUseSingleCell <
|
|
442
|
+
if (this.vUseSingleCell !== 0 && this.vUseSingleCell < vNumCols * vNumRows)
|
|
448
443
|
vSingleCell = true;
|
|
449
|
-
draw_utils_1.newNode(vTmpDiv,
|
|
450
|
-
vTmpDiv = draw_utils_1.newNode(vRightHeader,
|
|
444
|
+
draw_utils_1.newNode(vTmpDiv, "div", null, "rhscrpad", null, null, vTaskLeftPx + 1);
|
|
445
|
+
vTmpDiv = draw_utils_1.newNode(vRightHeader, "div", null, "glabelfooter");
|
|
451
446
|
return { gChartLbl: gChartLbl, vTaskLeftPx: vTaskLeftPx, vSingleCell: vSingleCell, vDateRow: vDateRow, vRightHeader: vRightHeader, vNumCols: vNumCols };
|
|
452
447
|
};
|
|
453
448
|
/**
|
|
@@ -457,23 +452,23 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
457
452
|
*/
|
|
458
453
|
this.drawCharBody = function (vTaskLeftPx, vTmpContentTabWrapper, gChartLbl, gListLbl, vMinDate, vMaxDate, vSingleCell, vNumCols, vColWidth, vDateRow) {
|
|
459
454
|
var vRightTable = document.createDocumentFragment();
|
|
460
|
-
var vTmpDiv = draw_utils_1.newNode(vRightTable,
|
|
455
|
+
var vTmpDiv = draw_utils_1.newNode(vRightTable, "div", this.vDivId + "gchartbody", "gchartgrid gcontainercol");
|
|
461
456
|
this.setChartBody(vTmpDiv);
|
|
462
|
-
var vTmpTab = draw_utils_1.newNode(vTmpDiv,
|
|
457
|
+
var vTmpTab = draw_utils_1.newNode(vTmpDiv, "table", this.vDivId + "chartTable", "gcharttable", null, vTaskLeftPx);
|
|
463
458
|
this.setChartTable(vTmpTab);
|
|
464
|
-
draw_utils_1.newNode(vTmpDiv,
|
|
465
|
-
var vTmpTBody = draw_utils_1.newNode(vTmpTab,
|
|
466
|
-
var vTmpTFoot = draw_utils_1.newNode(vTmpTab,
|
|
467
|
-
events_1.syncScroll([vTmpContentTabWrapper, vTmpDiv],
|
|
468
|
-
events_1.syncScroll([gChartLbl, vTmpDiv],
|
|
469
|
-
events_1.syncScroll([vTmpContentTabWrapper, gListLbl],
|
|
459
|
+
draw_utils_1.newNode(vTmpDiv, "div", null, "rhscrpad", null, null, vTaskLeftPx + 1);
|
|
460
|
+
var vTmpTBody = draw_utils_1.newNode(vTmpTab, "tbody");
|
|
461
|
+
var vTmpTFoot = draw_utils_1.newNode(vTmpTab, "tfoot");
|
|
462
|
+
events_1.syncScroll([vTmpContentTabWrapper, vTmpDiv], "scrollTop");
|
|
463
|
+
events_1.syncScroll([gChartLbl, vTmpDiv], "scrollLeft");
|
|
464
|
+
events_1.syncScroll([vTmpContentTabWrapper, gListLbl], "scrollLeft");
|
|
470
465
|
// Draw each row
|
|
471
466
|
var i = 0;
|
|
472
467
|
var j = 0;
|
|
473
468
|
var bd;
|
|
474
469
|
if (this.vDebug) {
|
|
475
470
|
bd = new Date();
|
|
476
|
-
console.info(
|
|
471
|
+
console.info("before tasks loop", bd);
|
|
477
472
|
}
|
|
478
473
|
for (i = 0; i < this.vTaskList.length; i++) {
|
|
479
474
|
var curTaskStart = this.vTaskList[i].getStart() ? this.vTaskList[i].getStart() : this.vTaskList[i].getPlanStart();
|
|
@@ -490,31 +485,31 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
490
485
|
vTaskPlanRightPx = general_utils_1.getOffset(curTaskPlanStart, curTaskPlanEnd, vColWidth, this.vFormat, this.vShowWeekends);
|
|
491
486
|
}
|
|
492
487
|
var vID = this.vTaskList[i].getID();
|
|
493
|
-
var vComb =
|
|
494
|
-
var vCellFormat =
|
|
488
|
+
var vComb = this.vTaskList[i].getParItem() && this.vTaskList[i].getParItem().getGroup() == 2;
|
|
489
|
+
var vCellFormat = "";
|
|
495
490
|
var vTmpDiv_1 = null;
|
|
496
491
|
var vTmpItem = this.vTaskList[i];
|
|
497
492
|
var vCaptClass = null;
|
|
498
493
|
// set cell width only for first row because of table-layout:fixed
|
|
499
494
|
var taskCellWidth = i === 0 ? vColWidth : null;
|
|
500
495
|
if (this.vTaskList[i].getMile() && !vComb) {
|
|
501
|
-
var vTmpRow = draw_utils_1.newNode(vTmpTBody,
|
|
496
|
+
var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, "gmileitem gmile" + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null);
|
|
502
497
|
this.vTaskList[i].setChildRow(vTmpRow);
|
|
503
498
|
events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow);
|
|
504
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
505
|
-
vTmpDiv_1 = draw_utils_1.newNode(vTmpCell,
|
|
506
|
-
vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1,
|
|
499
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellmile", null, vColWidth, null, null, null);
|
|
500
|
+
vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0");
|
|
501
|
+
vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, 12, vTaskLeftPx_1 + vTaskRightPx - 6);
|
|
507
502
|
this.vTaskList[i].setBarDiv(vTmpDiv_1);
|
|
508
|
-
var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1,
|
|
503
|
+
var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, 12);
|
|
509
504
|
this.vTaskList[i].setTaskDiv(vTmpDiv2);
|
|
510
505
|
if (this.vTaskList[i].getCompVal() < 100)
|
|
511
|
-
vTmpDiv2.appendChild(document.createTextNode(
|
|
506
|
+
vTmpDiv2.appendChild(document.createTextNode("\u25CA"));
|
|
512
507
|
else {
|
|
513
|
-
vTmpDiv2 = draw_utils_1.newNode(vTmpDiv2,
|
|
514
|
-
draw_utils_1.newNode(vTmpDiv2,
|
|
515
|
-
draw_utils_1.newNode(vTmpDiv2,
|
|
508
|
+
vTmpDiv2 = draw_utils_1.newNode(vTmpDiv2, "div", null, "gmilediamond");
|
|
509
|
+
draw_utils_1.newNode(vTmpDiv2, "div", null, "gmdtop");
|
|
510
|
+
draw_utils_1.newNode(vTmpDiv2, "div", null, "gmdbottom");
|
|
516
511
|
}
|
|
517
|
-
vCaptClass =
|
|
512
|
+
vCaptClass = "gmilecaption";
|
|
518
513
|
if (!vSingleCell && !vComb) {
|
|
519
514
|
this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate);
|
|
520
515
|
}
|
|
@@ -524,31 +519,31 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
524
519
|
// Draw Group Bar which has outer div with inner group div
|
|
525
520
|
// and several small divs to left and right to create angled-end indicators
|
|
526
521
|
if (this.vTaskList[i].getGroup()) {
|
|
527
|
-
vTaskWidth =
|
|
528
|
-
vTaskWidth =
|
|
529
|
-
var vTmpRow = draw_utils_1.newNode(vTmpTBody,
|
|
522
|
+
vTaskWidth = vTaskWidth > this.vMinGpLen && vTaskWidth < this.vMinGpLen * 2 ? this.vMinGpLen * 2 : vTaskWidth; // Expand to show two end points
|
|
523
|
+
vTaskWidth = vTaskWidth < this.vMinGpLen ? this.vMinGpLen : vTaskWidth; // expand to show one end point
|
|
524
|
+
var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, (this.vTaskList[i].getGroup() == 2 ? "glineitem gitem" : "ggroupitem ggroup") + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null);
|
|
530
525
|
this.vTaskList[i].setChildRow(vTmpRow);
|
|
531
526
|
events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow);
|
|
532
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
533
|
-
vTmpDiv_1 = draw_utils_1.newNode(vTmpCell,
|
|
527
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellbar", null, vColWidth, null, null);
|
|
528
|
+
vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0");
|
|
534
529
|
this.vTaskList[i].setCellDiv(vTmpDiv_1);
|
|
535
530
|
if (this.vTaskList[i].getGroup() == 1) {
|
|
536
|
-
vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1,
|
|
531
|
+
vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, vTaskWidth, vTaskLeftPx_1);
|
|
537
532
|
this.vTaskList[i].setBarDiv(vTmpDiv_1);
|
|
538
|
-
var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1,
|
|
533
|
+
var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, vTaskWidth);
|
|
539
534
|
this.vTaskList[i].setTaskDiv(vTmpDiv2);
|
|
540
|
-
draw_utils_1.newNode(vTmpDiv2,
|
|
541
|
-
draw_utils_1.newNode(vTmpDiv_1,
|
|
535
|
+
draw_utils_1.newNode(vTmpDiv2, "div", this.vDivId + "complete_" + vID, this.vTaskList[i].getClass() + "complete", null, this.vTaskList[i].getCompStr());
|
|
536
|
+
draw_utils_1.newNode(vTmpDiv_1, "div", null, this.vTaskList[i].getClass() + "endpointleft");
|
|
542
537
|
if (vTaskWidth >= this.vMinGpLen * 2)
|
|
543
|
-
draw_utils_1.newNode(vTmpDiv_1,
|
|
544
|
-
vCaptClass =
|
|
538
|
+
draw_utils_1.newNode(vTmpDiv_1, "div", null, this.vTaskList[i].getClass() + "endpointright");
|
|
539
|
+
vCaptClass = "ggroupcaption";
|
|
545
540
|
}
|
|
546
541
|
if (!vSingleCell && !vComb) {
|
|
547
542
|
this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate);
|
|
548
543
|
}
|
|
549
544
|
}
|
|
550
545
|
else {
|
|
551
|
-
vTaskWidth =
|
|
546
|
+
vTaskWidth = vTaskWidth <= 0 ? 1 : vTaskWidth;
|
|
552
547
|
/**
|
|
553
548
|
* DRAW THE BOXES FOR GANTT
|
|
554
549
|
*/
|
|
@@ -558,40 +553,44 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
558
553
|
}
|
|
559
554
|
else {
|
|
560
555
|
// Draw Task Bar which has colored bar div
|
|
561
|
-
|
|
556
|
+
var differentDatesHighlight = "";
|
|
557
|
+
if (this.vTaskList[i].getEnd() && this.vTaskList[i].getPlanEnd() && this.vTaskList[i].getStart() && this.vTaskList[i].getPlanStart())
|
|
558
|
+
if (Date.parse(this.vTaskList[i].getEnd()) !== Date.parse(this.vTaskList[i].getPlanEnd()) || Date.parse(this.vTaskList[i].getStart()) !== Date.parse(this.vTaskList[i].getPlanStart()))
|
|
559
|
+
differentDatesHighlight = "gitemdifferent ";
|
|
560
|
+
vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, "glineitem " + differentDatesHighlight + "gitem" + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null);
|
|
562
561
|
this.vTaskList[i].setChildRow(vTmpRow);
|
|
563
562
|
events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow);
|
|
564
|
-
var vTmpCell = draw_utils_1.newNode(vTmpRow,
|
|
565
|
-
vTmpDivCell = vTmpDiv_1 = draw_utils_1.newNode(vTmpCell,
|
|
563
|
+
var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellcolorbar", null, taskCellWidth, null, null);
|
|
564
|
+
vTmpDivCell = vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0");
|
|
566
565
|
}
|
|
567
566
|
// DRAW TASK BAR
|
|
568
|
-
vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1,
|
|
567
|
+
vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, vTaskWidth, vTaskLeftPx_1);
|
|
569
568
|
this.vTaskList[i].setBarDiv(vTmpDiv_1);
|
|
570
569
|
var vTmpDiv2 = void 0;
|
|
571
570
|
if (this.vTaskList[i].getStartVar()) {
|
|
572
571
|
// textbar
|
|
573
|
-
vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1,
|
|
572
|
+
vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, vTaskWidth);
|
|
574
573
|
if (this.vTaskList[i].getBarText()) {
|
|
575
|
-
draw_utils_1.newNode(vTmpDiv2,
|
|
574
|
+
draw_utils_1.newNode(vTmpDiv2, "span", this.vDivId + "tasktextbar_" + vID, "textbar", this.vTaskList[i].getBarText(), this.vTaskList[i].getCompRestStr());
|
|
576
575
|
}
|
|
577
576
|
this.vTaskList[i].setTaskDiv(vTmpDiv2);
|
|
578
577
|
}
|
|
579
578
|
// PLANNED
|
|
580
579
|
// If exist and one of them are different, show plan bar... show if there is no real vStart as well (just plan dates)
|
|
581
|
-
if (vTaskPlanLeftPx && (
|
|
582
|
-
var vTmpPlanDiv = draw_utils_1.newNode(vTmpDivCell,
|
|
583
|
-
var vTmpPlanDiv2 = draw_utils_1.newNode(vTmpPlanDiv,
|
|
580
|
+
if (vTaskPlanLeftPx && (vTaskPlanLeftPx != vTaskLeftPx_1 || vTaskPlanRightPx != vTaskRightPx || !this.vTaskList[i].getStartVar())) {
|
|
581
|
+
var vTmpPlanDiv = draw_utils_1.newNode(vTmpDivCell, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer gplan", null, vTaskPlanRightPx, vTaskPlanLeftPx);
|
|
582
|
+
var vTmpPlanDiv2 = draw_utils_1.newNode(vTmpPlanDiv, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getPlanClass() + " gplan", null, vTaskPlanRightPx);
|
|
584
583
|
this.vTaskList[i].setPlanTaskDiv(vTmpPlanDiv2);
|
|
585
584
|
}
|
|
586
585
|
// and opaque completion div
|
|
587
586
|
if (vTmpDiv2) {
|
|
588
|
-
draw_utils_1.newNode(vTmpDiv2,
|
|
587
|
+
draw_utils_1.newNode(vTmpDiv2, "div", this.vDivId + "complete_" + vID, this.vTaskList[i].getClass() + "complete", null, this.vTaskList[i].getCompStr());
|
|
589
588
|
}
|
|
590
589
|
// caption
|
|
591
590
|
if (vComb)
|
|
592
591
|
vTmpItem = this.vTaskList[i].getParItem();
|
|
593
592
|
if (!vComb || (vComb && this.vTaskList[i].getParItem().getEnd() == this.vTaskList[i].getEnd()))
|
|
594
|
-
vCaptClass =
|
|
593
|
+
vCaptClass = "gcaption";
|
|
595
594
|
// Background cells
|
|
596
595
|
if (!vSingleCell && !vComb && vTmpRow) {
|
|
597
596
|
this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate);
|
|
@@ -601,31 +600,31 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
601
600
|
if (this.getCaptionType() && vCaptClass !== null) {
|
|
602
601
|
var vCaptionStr = void 0;
|
|
603
602
|
switch (this.getCaptionType()) {
|
|
604
|
-
case
|
|
603
|
+
case "Caption":
|
|
605
604
|
vCaptionStr = vTmpItem.getCaption();
|
|
606
605
|
break;
|
|
607
|
-
case
|
|
606
|
+
case "Resource":
|
|
608
607
|
vCaptionStr = vTmpItem.getResource();
|
|
609
608
|
break;
|
|
610
|
-
case
|
|
609
|
+
case "Duration":
|
|
611
610
|
vCaptionStr = vTmpItem.getDuration(this.vFormat, this.vLangs[this.vLang]);
|
|
612
611
|
break;
|
|
613
|
-
case
|
|
612
|
+
case "Complete":
|
|
614
613
|
vCaptionStr = vTmpItem.getCompStr();
|
|
615
614
|
break;
|
|
616
615
|
}
|
|
617
|
-
draw_utils_1.newNode(vTmpDiv_1,
|
|
616
|
+
draw_utils_1.newNode(vTmpDiv_1, "div", null, vCaptClass, vCaptionStr, 120, vCaptClass == "gmilecaption" ? 12 : 0);
|
|
618
617
|
}
|
|
619
618
|
// Add Task Info div for tooltip
|
|
620
619
|
if (this.vTaskList[i].getTaskDiv() && vTmpDiv_1) {
|
|
621
|
-
var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1,
|
|
620
|
+
var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "tt" + vID, null, null, null, null, "none");
|
|
622
621
|
var _a = this.createTaskInfo(this.vTaskList[i], this.vTooltipTemplate), component = _a.component, callback = _a.callback;
|
|
623
622
|
vTmpDiv2.appendChild(component);
|
|
624
623
|
events_1.addTooltipListeners(this, this.vTaskList[i].getTaskDiv(), vTmpDiv2, callback);
|
|
625
624
|
}
|
|
626
625
|
// Add Plan Task Info div for tooltip
|
|
627
626
|
if (this.vTaskList[i].getPlanTaskDiv() && vTmpDiv_1) {
|
|
628
|
-
var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1,
|
|
627
|
+
var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "tt" + vID, null, null, null, null, "none");
|
|
629
628
|
var _b = this.createTaskInfo(this.vTaskList[i], this.vTooltipTemplate), component = _b.component, callback = _b.callback;
|
|
630
629
|
vTmpDiv2.appendChild(component);
|
|
631
630
|
events_1.addTooltipListeners(this, this.vTaskList[i].getPlanTaskDiv(), vTmpDiv2, callback);
|
|
@@ -633,10 +632,10 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
633
632
|
}
|
|
634
633
|
// Include the footer with the days/week/month...
|
|
635
634
|
if (vSingleCell) {
|
|
636
|
-
var vTmpTFootTRow = draw_utils_1.newNode(vTmpTFoot,
|
|
637
|
-
var vTmpTFootTCell = draw_utils_1.newNode(vTmpTFootTRow,
|
|
638
|
-
var vTmpTFootTCellTable = draw_utils_1.newNode(vTmpTFootTCell,
|
|
639
|
-
var vTmpTFootTCellTableTBody = draw_utils_1.newNode(vTmpTFootTCellTable,
|
|
635
|
+
var vTmpTFootTRow = draw_utils_1.newNode(vTmpTFoot, "tr");
|
|
636
|
+
var vTmpTFootTCell = draw_utils_1.newNode(vTmpTFootTRow, "td", null, null, null, "100%");
|
|
637
|
+
var vTmpTFootTCellTable = draw_utils_1.newNode(vTmpTFootTCell, "table", null, "gcharttableh", null, "100%");
|
|
638
|
+
var vTmpTFootTCellTableTBody = draw_utils_1.newNode(vTmpTFootTCellTable, "tbody");
|
|
640
639
|
vTmpTFootTCellTableTBody.appendChild(vDateRow.cloneNode(true));
|
|
641
640
|
}
|
|
642
641
|
else {
|
|
@@ -649,28 +648,28 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
649
648
|
if (pEndDate === void 0) { pEndDate = null; }
|
|
650
649
|
var columnCurrentDay = null;
|
|
651
650
|
// Find the Current day cell to put a different class
|
|
652
|
-
if (this.vShowWeekends !== false && pStartDate && pEndDate && (this.vFormat ==
|
|
651
|
+
if (this.vShowWeekends !== false && pStartDate && pEndDate && (this.vFormat == "day" || this.vFormat == "week")) {
|
|
653
652
|
var curTaskStart = new Date(pStartDate.getTime());
|
|
654
653
|
var curTaskEnd = new Date();
|
|
655
654
|
var onePeriod = 3600000;
|
|
656
|
-
if (this.vFormat ==
|
|
655
|
+
if (this.vFormat == "day") {
|
|
657
656
|
onePeriod *= 24;
|
|
658
657
|
}
|
|
659
|
-
else if (this.vFormat ==
|
|
658
|
+
else if (this.vFormat == "week") {
|
|
660
659
|
onePeriod *= 24 * 7;
|
|
661
660
|
}
|
|
662
661
|
columnCurrentDay = Math.floor(general_utils_1.calculateCurrentDateOffset(curTaskStart, curTaskEnd) / onePeriod) - 1;
|
|
663
662
|
}
|
|
664
663
|
for (var j = 0; j < vNumCols - 1; j++) {
|
|
665
|
-
var vCellFormat =
|
|
666
|
-
if (this.vShowWeekends !== false && this.vFormat ==
|
|
667
|
-
vCellFormat =
|
|
664
|
+
var vCellFormat = "gtaskcell gtaskcellcols";
|
|
665
|
+
if (this.vShowWeekends !== false && this.vFormat == "day" && (j % 7 == 4 || j % 7 == 5)) {
|
|
666
|
+
vCellFormat = "gtaskcellwkend";
|
|
668
667
|
}
|
|
669
668
|
//When is the column is the current day/week,give a different class
|
|
670
|
-
else if ((this.vFormat ==
|
|
671
|
-
vCellFormat =
|
|
669
|
+
else if ((this.vFormat == "week" || this.vFormat == "day") && j === columnCurrentDay) {
|
|
670
|
+
vCellFormat = "gtaskcellcurrent";
|
|
672
671
|
}
|
|
673
|
-
draw_utils_1.newNode(vTmpRow,
|
|
672
|
+
draw_utils_1.newNode(vTmpRow, "td", null, vCellFormat, "\u00A0\u00A0", taskCellWidth);
|
|
674
673
|
}
|
|
675
674
|
};
|
|
676
675
|
/**
|
|
@@ -690,7 +689,7 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
690
689
|
}
|
|
691
690
|
if (this.vDebug) {
|
|
692
691
|
bd = new Date();
|
|
693
|
-
console.info(
|
|
692
|
+
console.info("before draw", bd);
|
|
694
693
|
}
|
|
695
694
|
// Process all tasks, reset parent date and completion % if task list has altered
|
|
696
695
|
if (this.vProcessNeeded)
|
|
@@ -700,25 +699,25 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
700
699
|
vMinDate = date_utils_1.getMinDate(this.vTaskList, this.vFormat, this.getMinDate() && date_utils_1.coerceDate(this.getMinDate()));
|
|
701
700
|
vMaxDate = date_utils_1.getMaxDate(this.vTaskList, this.vFormat, this.getMaxDate() && date_utils_1.coerceDate(this.getMaxDate()));
|
|
702
701
|
// Calculate chart width variables.
|
|
703
|
-
if (this.vFormat ==
|
|
702
|
+
if (this.vFormat == "day")
|
|
704
703
|
vColWidth = this.vDayColWidth;
|
|
705
|
-
else if (this.vFormat ==
|
|
704
|
+
else if (this.vFormat == "week")
|
|
706
705
|
vColWidth = this.vWeekColWidth;
|
|
707
|
-
else if (this.vFormat ==
|
|
706
|
+
else if (this.vFormat == "month")
|
|
708
707
|
vColWidth = this.vMonthColWidth;
|
|
709
|
-
else if (this.vFormat ==
|
|
708
|
+
else if (this.vFormat == "quarter")
|
|
710
709
|
vColWidth = this.vQuarterColWidth;
|
|
711
|
-
else if (this.vFormat ==
|
|
710
|
+
else if (this.vFormat == "hour")
|
|
712
711
|
vColWidth = this.vHourColWidth;
|
|
713
712
|
// DRAW the Left-side of the chart (names, resources, comp%)
|
|
714
713
|
var vLeftHeader = document.createDocumentFragment();
|
|
715
714
|
/**
|
|
716
715
|
* LIST HEAD
|
|
717
|
-
|
|
716
|
+
*/
|
|
718
717
|
var gListLbl = this.drawListHead(vLeftHeader);
|
|
719
718
|
/**
|
|
720
719
|
* LIST BODY
|
|
721
|
-
|
|
720
|
+
*/
|
|
722
721
|
var _a = this.drawListBody(vLeftHeader), vNumRows = _a.vNumRows, vTmpContentTabWrapper = _a.vTmpContentTabWrapper;
|
|
723
722
|
/**
|
|
724
723
|
* CHART HEAD
|
|
@@ -730,28 +729,28 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
730
729
|
var vRightTable = this.drawCharBody(vTaskLeftPx, vTmpContentTabWrapper, gChartLbl, gListLbl, vMinDate, vMaxDate, vSingleCell, vNumCols, vColWidth, vDateRow).vRightTable;
|
|
731
730
|
if (this.vDebug) {
|
|
732
731
|
var ad = new Date();
|
|
733
|
-
console.info(
|
|
732
|
+
console.info("after tasks loop", ad, ad.getTime() - bd.getTime());
|
|
734
733
|
}
|
|
735
734
|
// MAIN VIEW: Appending all generated components to main view
|
|
736
735
|
while (this.vDiv.hasChildNodes())
|
|
737
736
|
this.vDiv.removeChild(this.vDiv.firstChild);
|
|
738
|
-
var vTmpDiv = draw_utils_1.newNode(this.vDiv,
|
|
737
|
+
var vTmpDiv = draw_utils_1.newNode(this.vDiv, "div", null, "gchartcontainer");
|
|
739
738
|
vTmpDiv.style.height = this.vTotalHeight;
|
|
740
|
-
var leftvTmpDiv = draw_utils_1.newNode(vTmpDiv,
|
|
739
|
+
var leftvTmpDiv = draw_utils_1.newNode(vTmpDiv, "div", null, "gmain gmainleft");
|
|
741
740
|
leftvTmpDiv.appendChild(vLeftHeader);
|
|
742
741
|
// leftvTmpDiv.appendChild(vLeftTable);
|
|
743
|
-
var rightvTmpDiv = draw_utils_1.newNode(vTmpDiv,
|
|
742
|
+
var rightvTmpDiv = draw_utils_1.newNode(vTmpDiv, "div", null, "gmain gmainright");
|
|
744
743
|
rightvTmpDiv.appendChild(vRightHeader);
|
|
745
744
|
rightvTmpDiv.appendChild(vRightTable);
|
|
746
745
|
vTmpDiv.appendChild(leftvTmpDiv);
|
|
747
746
|
vTmpDiv.appendChild(rightvTmpDiv);
|
|
748
|
-
draw_utils_1.newNode(vTmpDiv,
|
|
749
|
-
var vTmpDiv2 = draw_utils_1.newNode(this.getChartBody(),
|
|
750
|
-
if (this.vEvents.onLineContainerHover && typeof this.vEvents.onLineContainerHover ===
|
|
751
|
-
events_1.addListener(
|
|
752
|
-
events_1.addListener(
|
|
747
|
+
draw_utils_1.newNode(vTmpDiv, "div", null, "ggridfooter");
|
|
748
|
+
var vTmpDiv2 = draw_utils_1.newNode(this.getChartBody(), "div", this.vDivId + "Lines", "glinediv");
|
|
749
|
+
if (this.vEvents.onLineContainerHover && typeof this.vEvents.onLineContainerHover === "function") {
|
|
750
|
+
events_1.addListener("mouseover", this.vEvents.onLineContainerHover, vTmpDiv2);
|
|
751
|
+
events_1.addListener("mouseout", this.vEvents.onLineContainerHover, vTmpDiv2);
|
|
753
752
|
}
|
|
754
|
-
vTmpDiv2.style.visibility =
|
|
753
|
+
vTmpDiv2.style.visibility = "hidden";
|
|
755
754
|
this.setLines(vTmpDiv2);
|
|
756
755
|
/* Quick hack to show the generated HTML on older browsers
|
|
757
756
|
let tmpGenSrc=document.createElement('textarea');
|
|
@@ -761,14 +760,14 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
761
760
|
// LISTENERS: Now all the content exists, register scroll listeners
|
|
762
761
|
events_1.addScrollListeners(this);
|
|
763
762
|
// SCROLL: now check if we are actually scrolling the pane
|
|
764
|
-
if (this.vScrollTo !=
|
|
763
|
+
if (this.vScrollTo != "") {
|
|
765
764
|
var vScrollDate = new Date(vMinDate.getTime());
|
|
766
765
|
var vScrollPx = 0;
|
|
767
|
-
if (this.vScrollTo.substr && this.vScrollTo.substr(0, 2) ==
|
|
766
|
+
if (this.vScrollTo.substr && this.vScrollTo.substr(0, 2) == "px") {
|
|
768
767
|
vScrollPx = parseInt(this.vScrollTo.substr(2));
|
|
769
768
|
}
|
|
770
769
|
else {
|
|
771
|
-
if (this.vScrollTo ===
|
|
770
|
+
if (this.vScrollTo === "today") {
|
|
772
771
|
vScrollDate = new Date();
|
|
773
772
|
}
|
|
774
773
|
else if (this.vScrollTo instanceof Date) {
|
|
@@ -777,7 +776,7 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
777
776
|
else {
|
|
778
777
|
vScrollDate = date_utils_1.parseDateStr(this.vScrollTo, this.getDateInputFormat());
|
|
779
778
|
}
|
|
780
|
-
if (this.vFormat ==
|
|
779
|
+
if (this.vFormat == "hour")
|
|
781
780
|
vScrollDate.setMinutes(0, 0, 0);
|
|
782
781
|
else
|
|
783
782
|
vScrollDate.setHours(0, 0, 0, 0);
|
|
@@ -785,7 +784,7 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
785
784
|
}
|
|
786
785
|
this.getChartBody().scrollLeft = vScrollPx;
|
|
787
786
|
}
|
|
788
|
-
if (vMinDate.getTime() <=
|
|
787
|
+
if (vMinDate.getTime() <= new Date().getTime() && vMaxDate.getTime() >= new Date().getTime()) {
|
|
789
788
|
this.vTodayPx = general_utils_1.getOffset(vMinDate, new Date(), vColWidth, this.vFormat, this.vShowWeekends);
|
|
790
789
|
}
|
|
791
790
|
else
|
|
@@ -794,20 +793,20 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
794
793
|
var bdd;
|
|
795
794
|
if (this.vDebug) {
|
|
796
795
|
bdd = new Date();
|
|
797
|
-
console.info(
|
|
796
|
+
console.info("before DrawDependencies", bdd);
|
|
798
797
|
}
|
|
799
|
-
if (this.vEvents && typeof this.vEvents.beforeLineDraw ===
|
|
798
|
+
if (this.vEvents && typeof this.vEvents.beforeLineDraw === "function") {
|
|
800
799
|
this.vEvents.beforeLineDraw();
|
|
801
800
|
}
|
|
802
801
|
this.DrawDependencies(this.vDebug);
|
|
803
802
|
events_1.addListenerDependencies(this.vLineOptions);
|
|
804
803
|
// EVENTS
|
|
805
|
-
if (this.vEvents && typeof this.vEvents.afterLineDraw ===
|
|
804
|
+
if (this.vEvents && typeof this.vEvents.afterLineDraw === "function") {
|
|
806
805
|
this.vEvents.afterLineDraw();
|
|
807
806
|
}
|
|
808
807
|
if (this.vDebug) {
|
|
809
808
|
var ad = new Date();
|
|
810
|
-
console.info(
|
|
809
|
+
console.info("after DrawDependencies", ad, ad.getTime() - bdd.getTime());
|
|
811
810
|
}
|
|
812
811
|
this.drawComplete(vMinDate, vColWidth, bd);
|
|
813
812
|
};
|
|
@@ -817,7 +816,7 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
817
816
|
this.drawComplete = function (vMinDate, vColWidth, bd) {
|
|
818
817
|
if (this.vDebug) {
|
|
819
818
|
var ad = new Date();
|
|
820
|
-
console.info(
|
|
819
|
+
console.info("after draw", ad, ad.getTime() - bd.getTime());
|
|
821
820
|
}
|
|
822
821
|
events_1.updateGridHeaderWidth(this);
|
|
823
822
|
this.chartRowDateToX = function (date) {
|
|
@@ -827,7 +826,7 @@ exports.GanttChart = function (pDiv, pFormat) {
|
|
|
827
826
|
this.vEvents.afterDraw();
|
|
828
827
|
}
|
|
829
828
|
};
|
|
830
|
-
if (this.vDiv && this.vDiv.nodeName && this.vDiv.nodeName.toLowerCase() ==
|
|
829
|
+
if (this.vDiv && this.vDiv.nodeName && this.vDiv.nodeName.toLowerCase() == "div")
|
|
831
830
|
this.vDivId = this.vDiv.id;
|
|
832
831
|
}; //GanttChart
|
|
833
832
|
//# sourceMappingURL=draw.js.map
|