diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java index 7500efaab..614e7394c 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java @@ -96,6 +96,8 @@ public abstract class Resource extends IntegrationEntity { private Boolean limitingResource = Boolean.FALSE; + private Boolean generateCode = false; + private void clearCachedData() { assignmentsByDayCached = null; } @@ -1058,4 +1060,12 @@ public abstract class Resource extends IntegrationEntity { return (Boolean.TRUE.equals(isLimitingResource())) ? _("yes") : _("no"); } + public void setGenerateCode(Boolean generateCode) { + this.generateCode = generateCode; + } + + public Boolean getGenerateCode() { + return generateCode; + } + } diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml index 7faba6d40..e09483ba5 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml @@ -15,6 +15,8 @@ + + diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java index fa4353714..7059b0380 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java @@ -49,6 +49,8 @@ import org.navalplanner.web.costcategories.ResourcesCostCategoryAssignmentContro import org.navalplanner.web.resources.search.ResourcePredicate; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.WrongValueException; +import org.zkoss.zk.ui.event.CheckEvent; +import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Combobox; import org.zkoss.zul.Comboitem; @@ -708,4 +710,14 @@ public class WorkerCRUDController extends GenericForwardComposer implements return (getWorker() != null && !getWorker().isNewObject()); } + public void onCheckGenerateCode(Event e) { + CheckEvent ce = (CheckEvent) e; + if(ce.isChecked()) { + //we have to auto-generate the code if it's unsaved + if(getWorker().isNewObject()) { + getWorker().setCodeAutogenerated(); + Util.reloadBindings(editWindow); + } + } + } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerModel.java index 664c802bc..69a8790bb 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerModel.java @@ -168,6 +168,10 @@ public class WorkerModel implements IWorkerModel { } else { worker = Worker.create(); } + worker.setGenerateCode(configurationDAO.getConfiguration().getGenerateCodeForResources()); + if(!worker.getGenerateCode()) { + worker.setCode(""); + } localizationsAssigner = new MultipleCriterionActiveAssigner( criterionDAO, worker, PredefinedCriterionTypes.LOCATION_GROUP); diff --git a/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul b/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul index 13a9fb346..9b5350e72 100644 --- a/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul +++ b/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul @@ -43,7 +43,14 @@