From cc92ce809df911c5a3fb8ec62a3e16c43f047f5c Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 9 May 2012 12:41:12 +0200 Subject: [PATCH] Add option to unbound resource from user edition FEA: ItEr76S27ResourceBinding --- .../java/org/libreplan/web/users/IUserModel.java | 5 ++++- .../libreplan/web/users/UserCRUDController.java | 10 ++++++++++ .../java/org/libreplan/web/users/UserModel.java | 15 +++++++++++++++ .../src/main/webapp/users/_editUser.zul | 5 ++++- 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/IUserModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/IUserModel.java index fd13e681c..f2b4a3e50 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/IUserModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/IUserModel.java @@ -3,7 +3,7 @@ * * Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e * Desenvolvemento Tecnolóxico de Galicia - * Copyright (C) 2010-2011 Igalia, S.L. + * Copyright (C) 2010-2012 Igalia, S.L. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -33,6 +33,7 @@ import org.libreplan.business.users.entities.UserRole; * Model for UI operations related to {@link User} * * @author Jacobo Aragunde Perez + * @author Manuel Rego Casasnovas */ public interface IUserModel { @@ -129,4 +130,6 @@ public interface IUserModel { boolean isLDAPRolesBeingUsed(); + void unboundResource(); + } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java index 04f61d918..8f47d4ef0 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java @@ -53,6 +53,7 @@ import org.zkoss.zul.Messagebox; import org.zkoss.zul.Row; import org.zkoss.zul.RowRenderer; import org.zkoss.zul.Textbox; +import org.zkoss.zul.api.Groupbox; /** * Controller for CRUD actions over a {@link User} @@ -77,6 +78,8 @@ public class UserCRUDController extends BaseCRUDController implements private Combobox userRolesCombo; + private Groupbox boundResourceGroupbox; + private Autocomplete profileAutocomplete; private IURLHandlerRegistry URLHandlerRegistry; @@ -118,6 +121,8 @@ public class UserCRUDController extends BaseCRUDController implements profileAutocomplete = (Autocomplete) editWindow.getFellowIfAny("profileAutocomplete"); userRolesCombo = (Combobox) editWindow.getFellowIfAny("userRolesCombo"); appendAllUserRoles(userRolesCombo); + boundResourceGroupbox = (Groupbox) editWindow + .getFellowIfAny("boundResourceGroupbox"); final EntryPointsHandler handler = URLHandlerRegistry .getRedirectorFor(IUserCRUDController.class); @@ -376,4 +381,9 @@ public class UserCRUDController extends BaseCRUDController implements } } + public void unboundResource() { + userModel.unboundResource(); + Util.reloadBindings(boundResourceGroupbox); + } + } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/UserModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/UserModel.java index 4c9238611..401c15e1b 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/UserModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/UserModel.java @@ -71,6 +71,8 @@ public class UserModel implements IUserModel { private String clearNewPassword; + private Worker unboundWorker; + @Override @Transactional(readOnly = true) public List getUsers() { @@ -116,6 +118,11 @@ public class UserModel implements IUserModel { user.validate(); userDAO.save(user); + + if (unboundWorker != null) { + unboundWorker.setUser(null); + workerDAO.save(unboundWorker); + } } @Override @@ -126,6 +133,7 @@ public class UserModel implements IUserModel { @Override public void initCreate() { this.user = User.create(); + this.unboundWorker = null; } @Override @@ -134,6 +142,7 @@ public class UserModel implements IUserModel { Validate.notNull(user); this.user = getFromDB(user); this.setClearNewPassword(null); + this.unboundWorker = null; } @Transactional(readOnly = true) @@ -250,4 +259,10 @@ public class UserModel implements IUserModel { .getLdapSaveRolesDB(); } + @Override + public void unboundResource() { + unboundWorker = user.getWorker(); + user.setWorker(null); + } + } diff --git a/libreplan-webapp/src/main/webapp/users/_editUser.zul b/libreplan-webapp/src/main/webapp/users/_editUser.zul index 7ac33252b..1f3ffe10d 100644 --- a/libreplan-webapp/src/main/webapp/users/_editUser.zul +++ b/libreplan-webapp/src/main/webapp/users/_editUser.zul @@ -93,7 +93,7 @@ - + @@ -114,6 +114,9 @@