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 1b4bebd50..960e0866b 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 @@ -934,6 +934,7 @@ public abstract class BaseCalendarEditionController extends appendStandardEffortListcell(item, calendarException.getCapacity()); appendExtraEffortListcell(item, calendarException.getCapacity()); appendCodeListcell(item, calendarException); + appendOriginListcell(item, calendarException); appendOperationsListcell(item, calendarException); markAsSelected(item, calendarException); @@ -1017,6 +1018,17 @@ public abstract class BaseCalendarEditionController extends item.appendChild(listcell); } + private void appendOriginListcell(Listitem item, + CalendarException calendarException) { + Listcell listcell = new Listcell(); + String origin = _("Inherited"); + if (baseCalendarModel.isOwnException(calendarException)) { + origin = _("Direct"); + } + listcell.appendChild(new Label(origin)); + item.appendChild(listcell); + } + private void appendOperationsListcell(Listitem item, CalendarException calendarException) { Listcell listcell = new Listcell(); listcell.appendChild(createRemoveButton(calendarException)); @@ -1036,6 +1048,11 @@ public abstract class BaseCalendarEditionController extends reloadDayInformation(); } }); + if (!baseCalendarModel.isOwnException(calendarException)) { + result.setDisabled(true); + result + .setTooltiptext(_("derived exception can not be removed")); + } return result; } 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 38af82b7b..54cffdb15 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 @@ -34,14 +34,14 @@ import org.joda.time.LocalDate; import org.navalplanner.business.calendars.daos.IBaseCalendarDAO; import org.navalplanner.business.calendars.daos.ICalendarExceptionTypeDAO; import org.navalplanner.business.calendars.entities.BaseCalendar; -import org.navalplanner.business.calendars.entities.BaseCalendar.DayType; import org.navalplanner.business.calendars.entities.CalendarAvailability; import org.navalplanner.business.calendars.entities.CalendarData; -import org.navalplanner.business.calendars.entities.CalendarData.Days; import org.navalplanner.business.calendars.entities.CalendarException; import org.navalplanner.business.calendars.entities.CalendarExceptionType; import org.navalplanner.business.calendars.entities.Capacity; import org.navalplanner.business.calendars.entities.ResourceCalendar; +import org.navalplanner.business.calendars.entities.BaseCalendar.DayType; +import org.navalplanner.business.calendars.entities.CalendarData.Days; import org.navalplanner.business.common.IntegrationEntity; import org.navalplanner.business.common.daos.IConfigurationDAO; import org.navalplanner.business.common.entities.Configuration; @@ -564,6 +564,11 @@ public class BaseCalendarModel extends IntegrationEntityModel implements return getBaseCalendar().getExceptions(); } + @Override + public boolean isOwnException(CalendarException exception) { + return getBaseCalendar().getOwnExceptions().contains(exception); + } + @Override public void removeException(LocalDate date) { 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 284d77b48..32521b0b6 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 @@ -205,4 +205,6 @@ public interface IBaseCalendarModel extends IIntegrationEntityModel { void generateCalendarCodes(); boolean isLastActivationPeriod(CalendarAvailability calendarAvailability); + + boolean isOwnException(CalendarException exception); } diff --git a/navalplanner-webapp/src/main/webapp/calendars/_edition.zul b/navalplanner-webapp/src/main/webapp/calendars/_edition.zul index d7c8ebf8c..91616d878 100644 --- a/navalplanner-webapp/src/main/webapp/calendars/_edition.zul +++ b/navalplanner-webapp/src/main/webapp/calendars/_edition.zul @@ -149,6 +149,7 @@ +