diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java
index 75cafe04b..e5e0c1371 100644
--- a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java
+++ b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java
@@ -194,4 +194,8 @@ public abstract class TimeTrackerComponent extends HtmlMacroComponent {
return getTimeTracker().getMapper().getPixelsPerDay().doubleValue();
}
+ public boolean getWeekLevel() {
+ return timeTracker.getDetailLevel() == ZoomLevel.DETAIL_FOUR;
+ }
+
}
diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java
index cc4fba4e4..fb9729291 100644
--- a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java
+++ b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java
@@ -37,6 +37,16 @@ public final class DetailItem {
private boolean even;
private boolean bankHoliday;
+ private String bankHolidayWeek;
+
+ public String getBankHolidayWeek() {
+ return bankHolidayWeek;
+ }
+
+ public void setBankHolidayWeek(String bankHolidayWeek) {
+ this.bankHolidayWeek = bankHolidayWeek;
+ }
+
private boolean currentPeriod;
private int currentDayOffset;
@@ -175,6 +185,10 @@ public final class DetailItem {
return offset;
}
+ public void markBankHolidayWeek(String result) {
+ setBankHolidayWeek(result);
+ }
+
public void markBankHoliday() {
setBankHoliday(true);
}
diff --git a/ganttzk/src/main/resources/web/ganttz/img/not-workable-shade.png b/ganttzk/src/main/resources/web/ganttz/img/not-workable-shade.png
new file mode 100644
index 000000000..5e0d73d4f
Binary files /dev/null and b/ganttzk/src/main/resources/web/ganttz/img/not-workable-shade.png differ
diff --git a/ganttzk/src/main/resources/web/ganttz/zul/timetracker/timetrackersecondlevel.zul b/ganttzk/src/main/resources/web/ganttz/zul/timetracker/timetrackersecondlevel.zul
index eb6a693ec..3f420f0c4 100644
--- a/ganttzk/src/main/resources/web/ganttz/zul/timetracker/timetrackersecondlevel.zul
+++ b/ganttzk/src/main/resources/web/ganttz/zul/timetracker/timetrackersecondlevel.zul
@@ -29,11 +29,17 @@
-
+
+
+
+
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java
index 72c8f4b63..1dc14130f 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java
@@ -21,6 +21,7 @@
package org.navalplanner.web.planner.order;
import org.apache.commons.lang.Validate;
+import org.joda.time.LocalDate;
import org.navalplanner.business.calendars.entities.BaseCalendar;
import org.navalplanner.business.calendars.entities.ICalendar;
import org.navalplanner.business.workingday.IntraDayDate.PartialDay;
@@ -42,6 +43,8 @@ public final class BankHolidaysMarker implements
private final ICalendar calendar;
+ private static final int WEEK_LEVEL_SHADE_WIDTH = 8;
+
/**
* Important: Make sure that the provided calendar has all
* its associated data loaded.
@@ -62,6 +65,24 @@ public final class BankHolidaysMarker implements
item.markBankHoliday();
}
}
+ if ((calendar != null)
+ && (z == ZoomLevel.DETAIL_THREE || z == ZoomLevel.DETAIL_FOUR)) {
+ LocalDate day = item.getStartDate().toLocalDate();
+ boolean notWorkable;
+ StringBuilder result = new StringBuilder();
+ for (int i = 0; i < 7; i++) {
+ notWorkable = calendar.getCapacityOn(PartialDay.wholeDay(day))
+ .isZero();
+ day = day.plusDays(1);
+ result.append(notWorkable ? i * WEEK_LEVEL_SHADE_WIDTH
+ : -WEEK_LEVEL_SHADE_WIDTH);
+ result.append("px 0");
+ if (i != 6) {
+ result.append(",");
+ }
+ }
+ item.markBankHolidayWeek(result.toString());
+ }
return item;
}
-}
\ No newline at end of file
+}
diff --git a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css
index 2dde78e51..2336722ec 100644
--- a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css
+++ b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css
@@ -426,6 +426,17 @@ div.box.limiting-unassigned {
height: 650px;
}
+
+#watermark .week-level.timetracker_column_even {
+ background-color: #FFFFFF !important;
+}
+
+#watermark .week-level {
+ background-image: url("../../zkau/web/ganttz/img/bank-holiday-shade.png"), url("../../zkau/web/ganttz/img/bank-holiday-shade.png"), url("../../zkau/web/ganttz/img/bank-holiday-shade.png"),url("../../zkau/web/ganttz/img/bank-holiday-shade.png"),url("../../zkau/web/ganttz/img/bank-holiday-shade.png"),url("../../zkau/web/ganttz/img/bank-holiday-shade.png"),url("../../zkau/web/ganttz/img/bank-holiday-shade.png");
+ background-repeat: repeat-y, repeat-y,repeat-y,repeat-y,repeat-y,repeat-y,repeat-y;
+ background-position: -8px 0, -8px 0, -8px 0, -8px 0, -8px 0, -8px 0, -8px 0;
+}
+
.limitingresources #watermark .bankHoliday {
height: 650px;
}