diff --git a/css/style.css b/css/style.css index 0756dfe..985f864 100644 --- a/css/style.css +++ b/css/style.css @@ -155,7 +155,7 @@ text-align: center; } -.fn-gantt .rightPanel .month, .fn-gantt .rightPanel .year { +.fn-gantt .rightPanel .weekyear, .fn-gantt .rightPanel .month, .fn-gantt .rightPanel .year { float: left; overflow: hidden; border-left: 1px solid #DDD; diff --git a/index.html b/index.html index dd193db..9af9e61 100644 --- a/index.html +++ b/index.html @@ -221,6 +221,17 @@

string + + + weekYearPrefix + + + "W" + + + string + + onItemClick diff --git a/js/jquery.fn.gantt.js b/js/jquery.fn.gantt.js index 564f419..457ef51 100644 --- a/js/jquery.fn.gantt.js +++ b/js/jquery.fn.gantt.js @@ -180,6 +180,7 @@ dow: ["S", "M", "T", "W", "T", "F", "S"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], waitText: "Please wait...", + weekYearPrefix : "W", // navigation navigate: "buttons", scrollToToday: true, @@ -435,6 +436,9 @@ var monthArr = []; var scaleUnitsThisMonth = 0; + var woyArr = []; + var daysInWeek = 0; + var dayArr = []; var hoursInDay = 0; @@ -715,6 +719,7 @@ var dateBefore = ktkGetNextDate(range[0], -1); year = dateBefore.getFullYear(); month = dateBefore.getMonth(); + var weekOfYear = dateBefore.getWeekOfYear(); //day = dateBefore; // <- never used? for (i = 0, len = range.length; i < len; i++) { @@ -746,6 +751,21 @@ } scaleUnitsThisMonth++; + // Fill week of year + if (rday.getWeekOfYear() !== weekOfYear) { + // Fill weeks + woyArr.push( + '
' + + settings.weekYearPrefix + " " + weekOfYear + + '
'); + + weekOfYear = rday.getWeekOfYear(); + daysInWeek = 0; + } + daysInWeek++; + day = rday.getDay(); dayClass = dowClass[day]; if ( tools.isHoliday(rday) ) { @@ -779,12 +799,20 @@ settings.months[month] + ''); + // Last week + woyArr.push( + '
' + + settings.weekYearPrefix +" " + weekOfYear + '
'); + dataPanel = core.dataPanel(element, range.length * tools.getCellSize()); // Append panel elements dataPanel.append( $row.clone().html(yearArr.join("")), $row.clone().html(monthArr.join("")), + $row.clone().html(woyArr.join("")), $row.clone().html(dayArr.join("")), $row.clone().html(dowArr.join("")) ); @@ -1140,7 +1168,7 @@ // find row topEl = $(element).find("#rowheader" + i); - top = tools.getCellSize() * 4 + 2 + topEl.data("offset"); + top = tools.getCellSize() * 5 + 2 + topEl.data("offset"); _bar.css({ 'top': top, 'left': Math.floor(cFrom) }); datapanel.append(_bar); @@ -1231,7 +1259,7 @@ var headerRows = element.headerRows; if (settings.scale === "hours" && scaleSt >= 13) { scale = "days"; - headerRows = 4; + headerRows = 5; scaleSt = 13; } else if (settings.scale === "days" && zoomIn) { scale = "hours"; @@ -1247,7 +1275,7 @@ scaleSt = 14; } else if (settings.scale === "weeks" && zoomIn) { scale = "days"; - headerRows = 4; + headerRows = 5; scaleSt = 13; } else if (settings.scale === "months" && zoomIn) { scale = "weeks"; @@ -1742,7 +1770,7 @@ case "days": /* falls through */ default: - this.headerRows = 4; + this.headerRows = 5; this.scaleStep = 13; }