ItEr35S08CUAsignacionCalendarioLaboralRecursoItEr25S09: Removed options to create resource calendars.
This commit is contained in:
parent
097e46d686
commit
2079c7d38b
4 changed files with 67 additions and 87 deletions
|
|
@ -124,4 +124,7 @@ public interface IWorkerModel {
|
|||
ResourceCalendar getCalendar();
|
||||
|
||||
IAssignedCriterionsModel getAssignedCriterionsModel();
|
||||
|
||||
BaseCalendar getDefaultCalendar();
|
||||
|
||||
}
|
||||
|
|
@ -22,6 +22,7 @@ package org.navalplanner.web.resources.worker;
|
|||
|
||||
import static org.navalplanner.web.I18nHelper._;
|
||||
import static org.navalplanner.web.common.ConcurrentModificationDetector.addAutomaticHandlingOfConcurrentModification;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -45,7 +46,7 @@ import org.zkoss.zk.ui.WrongValueException;
|
|||
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
||||
import org.zkoss.zul.Combobox;
|
||||
import org.zkoss.zul.Comboitem;
|
||||
import org.zkoss.zul.Radio;
|
||||
import org.zkoss.zul.ComboitemRenderer;
|
||||
import org.zkoss.zul.api.Window;
|
||||
|
||||
/**
|
||||
|
|
@ -95,6 +96,8 @@ public class WorkerCRUDController extends GenericForwardComposer implements
|
|||
|
||||
private Window createNewVersionWindow;
|
||||
|
||||
private BaseCalendarsComboitemRenderer baseCalendarsComboitemRenderer = new BaseCalendarsComboitemRenderer();
|
||||
|
||||
public WorkerCRUDController() {
|
||||
}
|
||||
|
||||
|
|
@ -136,6 +139,9 @@ public class WorkerCRUDController extends GenericForwardComposer implements
|
|||
if (baseCalendarEditionController != null) {
|
||||
baseCalendarEditionController.save();
|
||||
}
|
||||
if (workerModel.getCalendar() == null) {
|
||||
createCalendar();
|
||||
}
|
||||
if(criterionsController != null){
|
||||
if(!criterionsController.validate()){
|
||||
return;
|
||||
|
|
@ -310,25 +316,6 @@ public class WorkerCRUDController extends GenericForwardComposer implements
|
|||
return workerModel.getBaseCalendars();
|
||||
}
|
||||
|
||||
public void calendarChecked(Radio radio) {
|
||||
Combobox comboboxDerived = (Combobox) radio
|
||||
.getFellow("createDerivedCalendar");
|
||||
Combobox comboboxCopy = (Combobox) radio
|
||||
.getFellow("createCopyCalendar");
|
||||
|
||||
String selectedId = radio.getId();
|
||||
if (selectedId.equals("createFromScratch")) {
|
||||
comboboxDerived.setDisabled(true);
|
||||
comboboxCopy.setDisabled(true);
|
||||
} else if (selectedId.equals("createDerived")) {
|
||||
comboboxDerived.setDisabled(false);
|
||||
comboboxCopy.setDisabled(true);
|
||||
} else if (selectedId.equals("createCopy")) {
|
||||
comboboxDerived.setDisabled(true);
|
||||
comboboxCopy.setDisabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isCalendarNull() {
|
||||
if (workerModel.getCalendar() != null) {
|
||||
return false;
|
||||
|
|
@ -340,50 +327,23 @@ public class WorkerCRUDController extends GenericForwardComposer implements
|
|||
return !isCalendarNull();
|
||||
}
|
||||
|
||||
public void createCalendar(String optionId) {
|
||||
if (optionId.equals("createFromScratch")) {
|
||||
resourceCalendarModel.initCreate();
|
||||
} else if (optionId.equals("createDerived")) {
|
||||
Combobox combobox = (Combobox) getCurrentWindow().getFellow(
|
||||
"createDerivedCalendar");
|
||||
Comboitem selectedItem = combobox.getSelectedItem();
|
||||
if (selectedItem == null) {
|
||||
throw new WrongValueException(combobox,
|
||||
"You should select one calendar");
|
||||
}
|
||||
BaseCalendar parentCalendar = (BaseCalendar) combobox
|
||||
.getSelectedItem().getValue();
|
||||
resourceCalendarModel.initCreateDerived(parentCalendar);
|
||||
} else if (optionId.equals("createCopy")) {
|
||||
Combobox combobox = (Combobox) getCurrentWindow().getFellow(
|
||||
"createCopyCalendar");
|
||||
Comboitem selectedItem = combobox.getSelectedItem();
|
||||
if (selectedItem == null) {
|
||||
throw new WrongValueException(combobox,
|
||||
"You should select one calendar");
|
||||
}
|
||||
BaseCalendar origCalendar = (BaseCalendar) combobox
|
||||
.getSelectedItem().getValue();
|
||||
resourceCalendarModel.initCreateCopy(origCalendar);
|
||||
} else {
|
||||
throw new RuntimeException(
|
||||
"Unknow option '" + optionId
|
||||
+ "' to create a resource calendar");
|
||||
private void createCalendar() {
|
||||
Combobox combobox = (Combobox) getCurrentWindow().getFellow(
|
||||
"createDerivedCalendar");
|
||||
Comboitem selectedItem = combobox.getSelectedItem();
|
||||
if (selectedItem == null) {
|
||||
throw new WrongValueException(combobox,
|
||||
"You should select one calendar");
|
||||
}
|
||||
BaseCalendar parentCalendar = (BaseCalendar) combobox.getSelectedItem()
|
||||
.getValue();
|
||||
if (parentCalendar == null) {
|
||||
parentCalendar = workerModel.getDefaultCalendar();
|
||||
}
|
||||
resourceCalendarModel.initCreateDerived(parentCalendar);
|
||||
|
||||
updateCalendarController();
|
||||
workerModel.setCalendar((ResourceCalendar) resourceCalendarModel
|
||||
.getBaseCalendar());
|
||||
try {
|
||||
baseCalendarEditionController.doAfterCompose(editCalendarWindow);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
baseCalendarEditionController.setSelectedDay(new Date());
|
||||
Util.reloadBindings(editCalendarWindow);
|
||||
Util.reloadBindings(createNewVersionWindow);
|
||||
reloadCurrentWindow();
|
||||
}
|
||||
|
||||
public void editCalendar() {
|
||||
|
|
@ -453,4 +413,30 @@ public class WorkerCRUDController extends GenericForwardComposer implements
|
|||
editCalendarWindow.setVariable("calendarController", this, true);
|
||||
createNewVersionWindow.setVariable("calendarController", this, true);
|
||||
}
|
||||
|
||||
public BaseCalendarsComboitemRenderer getBaseCalendarsComboitemRenderer() {
|
||||
return baseCalendarsComboitemRenderer;
|
||||
}
|
||||
|
||||
private class BaseCalendarsComboitemRenderer implements ComboitemRenderer {
|
||||
|
||||
@Override
|
||||
public void render(Comboitem item, Object data) throws Exception {
|
||||
BaseCalendar calendar = (BaseCalendar) data;
|
||||
item.setLabel(calendar.getName());
|
||||
item.setValue(calendar);
|
||||
|
||||
if (isDefaultCalendar(calendar)) {
|
||||
Combobox combobox = (Combobox) item.getParent();
|
||||
combobox.setSelectedItem(item);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isDefaultCalendar(BaseCalendar calendar) {
|
||||
BaseCalendar defaultCalendar = workerModel.getDefaultCalendar();
|
||||
return defaultCalendar.getId().equals(calendar.getId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ import org.navalplanner.business.calendars.daos.IBaseCalendarDAO;
|
|||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.calendars.entities.CalendarData;
|
||||
import org.navalplanner.business.calendars.entities.ResourceCalendar;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.resources.daos.ICriterionDAO;
|
||||
|
|
@ -89,6 +90,9 @@ public class WorkerModel implements IWorkerModel {
|
|||
@Autowired
|
||||
private IAssignedCriterionsModel assignedCriterionsModel;
|
||||
|
||||
@Autowired
|
||||
private IConfigurationDAO configurationDAO;
|
||||
|
||||
@Autowired
|
||||
public WorkerModel(IResourceDAO resourceDAO,
|
||||
ICriterionDAO criterionDAO) {
|
||||
|
|
@ -480,4 +484,12 @@ public class WorkerModel implements IWorkerModel {
|
|||
return assignedCriterionsModel;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public BaseCalendar getDefaultCalendar() {
|
||||
BaseCalendar defaultCalendar = configurationDAO.getConfiguration().getDefaultCalendar();
|
||||
forceLoadCalendar(defaultCalendar);
|
||||
return defaultCalendar;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,33 +24,12 @@
|
|||
|
||||
<div visible="@{controller.isCalendarNull}">
|
||||
|
||||
<radiogroup id="createCalendarOptions"
|
||||
onCheck="controller.calendarChecked(self.selectedItem)">
|
||||
<hbox>
|
||||
<radio id="createFromScratch"
|
||||
label="${i18n:_('Create calendar from scratch')}"
|
||||
checked="true" />
|
||||
</hbox>
|
||||
<hbox>
|
||||
<radio id="createDerived" label="${i18n:_('Create derived calendar')}" />
|
||||
<combobox id="createDerivedCalendar" disabled="true"
|
||||
model="@{controller.baseCalendars}">
|
||||
<comboitem self="@{each='baseCalnedar'}" value="@{baseCalnedar}"
|
||||
label="@{baseCalnedar.name}" />
|
||||
</combobox>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<radio id="createCopy" label="${i18n:_('Create copy of calendar')}" />
|
||||
<combobox id="createCopyCalendar" disabled="true"
|
||||
model="@{controller.baseCalendars}">
|
||||
<comboitem self="@{each='baseCalnedar'}" value="@{baseCalnedar}"
|
||||
label="@{baseCalnedar.name}" />
|
||||
</combobox>
|
||||
</hbox>
|
||||
</radiogroup>
|
||||
|
||||
<button label="${i18n:_('Create')}"
|
||||
onClick="controller.createCalendar(createCalendarOptions.selectedItem.id);" />
|
||||
<hbox>
|
||||
<label value="${i18n:_('Select parent calendar')}" />
|
||||
<combobox id="createDerivedCalendar"
|
||||
model="@{controller.baseCalendars}"
|
||||
itemRenderer="@{controller.baseCalendarsComboitemRenderer}" />
|
||||
</hbox>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue