diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java index 2f813cfc2..b1ca19605 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java @@ -687,12 +687,22 @@ public class BaseCalendar extends IntegrationEntity implements IWorkHours { return isLastVersion(new LocalDate(date)); } + public boolean isFirstVersion(Date date) { + return isFirstVersion(new LocalDate(date)); + } + public boolean isLastVersion(LocalDate date) { CalendarData calendarData = getCalendarData(date); Integer index = calendarDataVersions.indexOf(calendarData); return (index == (calendarDataVersions.size() - 1)); } + public boolean isFirstVersion(LocalDate date) { + CalendarData calendarData = getCalendarData(date); + Integer index = calendarDataVersions.indexOf(calendarData); + return (index == 0); + } + /** * Returns a set of non workable days (0 hours) for a specific period * depending on the calendar restrictions. diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java index 567c21d04..0bf208c4f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java @@ -196,19 +196,6 @@ public abstract class BaseCalendarEditionController extends return baseCalendarModel.isDerived(); } - public boolean isDateValidFromPast() { - if (!isEditing()) { - return false; - } - - Date dateValidFrom = baseCalendarModel.getDateValidFrom(); - if (dateValidFrom != null) { - return isPast(dateValidFrom); - } - - return true; - } - private boolean isPast(Date date) { LocalDate localDate = new LocalDate(date); LocalDate currentLocalDate = new LocalDate(); @@ -262,9 +249,7 @@ public abstract class BaseCalendarEditionController extends }); - if (isDateValidFromPast()) { - hoursIntbox.setDisabled(true); - } else if (baseCalendarModel.isDerived() + if (baseCalendarModel.isDerived() && baseCalendarModel.isDefault(day)) { hoursIntbox.setDisabled(true); } @@ -302,10 +287,6 @@ public abstract class BaseCalendarEditionController extends }); - if (isDateValidFromPast()) { - defaultCheckbox.setDisabled(true); - } - defaultListcell.appendChild(defaultCheckbox); item.appendChild(defaultListcell); } @@ -674,9 +655,7 @@ public abstract class BaseCalendarEditionController extends LocalDate validFrom = baseCalendarModel.getValidFrom(calendarData); if ((validFrom == null) || (!baseCalendarModel.getLastCalendarData().equals( - calendarData)) - || (validFrom.compareTo( - new LocalDate()) <= 0)) { + calendarData))) { result.setDisabled(true); } return result; @@ -723,6 +702,10 @@ public abstract class BaseCalendarEditionController extends return baseCalendarModel.isLastVersion(); } + public boolean isFirstVersion() { + return baseCalendarModel.isFirstVersion(); + } + public void goToDate(Date date) { setSelectedDay(date); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java index 7ba092c56..89df6e7ba 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java @@ -432,6 +432,14 @@ public class BaseCalendarModel implements IBaseCalendarModel { return false; } + @Override + public boolean isFirstVersion() { + if (getBaseCalendar() != null) { + return getBaseCalendar().isFirstVersion(selectedDate); + } + return false; + } + @Override public String getName() { if (getBaseCalendar() != null) { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/IBaseCalendarModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/IBaseCalendarModel.java index 7050cccc6..16b05ef16 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/IBaseCalendarModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/IBaseCalendarModel.java @@ -150,6 +150,8 @@ public interface IBaseCalendarModel { boolean isLastVersion(); + boolean isFirstVersion(); + String getName(); LocalDate getValidFrom(CalendarData calendarData); diff --git a/navalplanner-webapp/src/main/webapp/calendars/_edition.zul b/navalplanner-webapp/src/main/webapp/calendars/_edition.zul index fb4a69b4d..a295a7e09 100644 --- a/navalplanner-webapp/src/main/webapp/calendars/_edition.zul +++ b/navalplanner-webapp/src/main/webapp/calendars/_edition.zul @@ -174,8 +174,7 @@