|
47 | 47 | onAddClick: function (data) { return; }, |
48 | 48 | onRender: function() { return; }, |
49 | 49 | onDataLoadFailed: function(data) { return; }, |
50 | | - scrollToToday: true |
| 50 | + scrollToToday: true, |
| 51 | + showFractionalHours: true |
51 | 52 | }; |
52 | 53 |
|
53 | 54 | /** |
|
501 | 502 |
|
502 | 503 | var day_class2 = (today - day === 0) ? ' today' : (holidays.indexOf(getTime) > -1) ? "holiday" : dowClass[getDay]; |
503 | 504 |
|
504 | | - dayArr.push('<div class="row date ' + day_class2 + '" ' |
| 505 | + dayArr.push('<div class="row date dh ' + day_class2 + '" ' |
505 | 506 | + ' style="width: ' + tools.getCellSize() * hoursInDay + 'px;"> ' |
506 | 507 | + ' <div class="fn-label">' + day.getDate() + '</div></div>'); |
507 | 508 | dowArr.push('<div class="row day ' + day_class2 + '" ' |
|
513 | 514 | } |
514 | 515 | hoursInDay++; |
515 | 516 |
|
516 | | - horArr.push('<div class="row day ' |
| 517 | + horArr.push('<div class="row day dh ' |
517 | 518 | + day_class |
518 | 519 | + '" id="dh-' |
519 | 520 | + rday.getTime() |
|
541 | 542 | day_class = "holiday"; |
542 | 543 | } |
543 | 544 |
|
544 | | - dayArr.push('<div class="row date ' + day_class + '" ' |
| 545 | + dayArr.push('<div class="row date dh" ' + day_class + '" ' |
545 | 546 | + ' style="width: ' + tools.getCellSize() * hoursInDay + 'px;"> ' |
546 | 547 | + ' <div class="fn-label">' + day.getDate() + '</div></div>'); |
547 | 548 |
|
|
649 | 650 | daysInYear = 0; |
650 | 651 | } |
651 | 652 | daysInYear++; |
652 | | - monthArr.push('<div class="row day wd" id="dh-' + tools.genId(rday.getTime()) + '" offset="' + i * tools.getCellSize() + '" repdate="' + rday.getRepDate() + '">' + (1 + rday.getMonth()) + '</div>'); |
| 653 | + monthArr.push('<div class="row day wd dh" id="dh-' + tools.genId(rday.getTime()) + '" offset="' + i * tools.getCellSize() + '" repdate="' + rday.getRepDate() + '">' + (1 + rday.getMonth()) + '</div>'); |
653 | 654 | } |
654 | 655 |
|
655 | 656 |
|
|
1034 | 1035 | switch (settings.scale) { |
1035 | 1036 | // **Hourly data** |
1036 | 1037 | case "hours": |
| 1038 | + // In fractional hour aware charts, this determines the pixel delta of d_from and d_to relative to the hour tick-mark |
| 1039 | + var pixelOffsetFactor = tools.getCellSize() / (3600000.0*element.scaleStep); |
| 1040 | + |
1037 | 1041 | var dFrom = tools.genId(tools.dateDeserialize(day.from).getTime(), element.scaleStep); |
| 1042 | + var dFromDelta = settings.showFractionalHours ? |
| 1043 | + (tools.dateDeserialize(day.from).getTime() - dFrom) * pixelOffsetFactor : |
| 1044 | + 0; |
1038 | 1045 | var from = $(element).find('#dh-' + dFrom); |
1039 | 1046 |
|
1040 | 1047 | var dTo = tools.genId(tools.dateDeserialize(day.to).getTime(), element.scaleStep); |
| 1048 | + var dToDelta = settings.showFractionalHours ? |
| 1049 | + (tools.dateDeserialize(day.to).getTime() - dTo) * pixelOffsetFactor : |
| 1050 | + 0; |
1041 | 1051 | var to = $(element).find('#dh-' + dTo); |
1042 | 1052 |
|
1043 | 1053 | console.log(dFrom, dTo); |
1044 | 1054 |
|
1045 | | - var cFrom = from.attr("offset"); |
1046 | | - var cTo = to.attr("offset"); |
| 1055 | + var cFrom = parseInt(from.attr("offset")) + dFromDelta; |
| 1056 | + var cTo = parseInt(to.attr("offset")) + dToDelta; |
1047 | 1057 | var dl = Math.floor((cTo - cFrom) / tools.getCellSize()) + 1; |
1048 | 1058 |
|
1049 | 1059 | _bar = core.createProgressBar( |
1050 | 1060 | dl, |
1051 | | - day.id ? day.id : "", |
1052 | 1061 | day.customClass ? day.customClass : "", |
1053 | 1062 | day.desc ? day.desc : "", |
1054 | 1063 | day.label ? day.label : "", |
|
1092 | 1101 |
|
1093 | 1102 | _bar = core.createProgressBar( |
1094 | 1103 | dl, |
1095 | | - day.id ? day.id : "", |
1096 | 1104 | day.customClass ? day.customClass : "", |
1097 | 1105 | day.desc ? day.desc : "", |
1098 | 1106 | day.label ? day.label : "", |
|
1133 | 1141 |
|
1134 | 1142 | _bar = core.createProgressBar( |
1135 | 1143 | dl, |
1136 | | - day.id ? day.id : "", |
1137 | 1144 | day.customClass ? day.customClass : "", |
1138 | 1145 | day.desc ? day.desc : "", |
1139 | 1146 | day.label ? day.label : "", |
|
1160 | 1167 | var dl = Math.floor(((dTo / 1000) - (dFrom / 1000)) / 86400) + 1; |
1161 | 1168 | _bar = core.createProgressBar( |
1162 | 1169 | dl, |
1163 | | - day.id ? day.id : "", |
1164 | 1170 | day.customClass ? day.customClass : "", |
1165 | 1171 | day.desc ? day.desc : "", |
1166 | 1172 | day.label ? day.label : "", |
|
1506 | 1512 | case "hours": |
1507 | 1513 | minDate.setHours(Math.floor((minDate.getHours()) / element.scaleStep) * element.scaleStep); |
1508 | 1514 | minDate.setHours(minDate.getHours() - element.scaleStep * 3); |
| 1515 | + minDate.setMinutes(0); |
| 1516 | + minDate.setSeconds(0); |
| 1517 | + minDate.setMilliseconds(0); |
1509 | 1518 | break; |
1510 | 1519 | case "weeks": |
1511 | 1520 | var bd = new Date(minDate.getTime()); |
|
1640 | 1649 | }, |
1641 | 1650 |
|
1642 | 1651 | // Generate an id for a date |
| 1652 | + // Using the value for the current scale (zoom level) "arguments[1]", the start/end columns are determined by tructating the given time |
| 1653 | + // down to beginning of the proper column |
1643 | 1654 | genId: function (ticks) { |
1644 | 1655 | var t = new Date(ticks); |
1645 | 1656 | switch (settings.scale) { |
|
0 commit comments