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; }