Author: bleny Date: 2013-08-29 12:48:01 +0200 (Thu, 29 Aug 2013) New Revision: 392 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: remove messages from session and use notification context because notifications was lost in case of two redirections Modified: trunk/magalie-services/src/main/resources/fixtures.yaml trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieActionSupport.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieSession.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/StrutsActionMessagesUserNotificationContext.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ReceiveArticleAction.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/RestoreFixturesAction.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/SimpleWithdrawItemAction.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java trunk/magalie-web/src/main/webapp/WEB-INF/decorators/layout.jsp Modified: trunk/magalie-services/src/main/resources/fixtures.yaml =================================================================== --- trunk/magalie-services/src/main/resources/fixtures.yaml 2013-08-29 09:43:16 UTC (rev 391) +++ trunk/magalie-services/src/main/resources/fixtures.yaml 2013-08-29 10:48:01 UTC (rev 392) @@ -623,8 +623,8 @@ &requestedList1 !requested-list id: requestedList1 code: 123456789 - requestDate: 2013-04-08 12:00:00 - urgent: true + requestDate: 2013-06-08 12:00:00 + urgent: false building: *B1 listType: LOT DE FAB @@ -633,7 +633,7 @@ id: requestedList2 code: 987654321 requestDate: 2013-04-08 12:00:00 - urgent: false + urgent: true building: *B1 listType: LOT DE FAB Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieActionSupport.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieActionSupport.java 2013-08-29 09:43:16 UTC (rev 391) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieActionSupport.java 2013-08-29 10:48:01 UTC (rev 392) @@ -24,12 +24,15 @@ */ import com.google.common.base.Objects; +import com.google.common.collect.ImmutableSet; import com.opensymphony.xwork2.ActionSupport; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.util.Arrays; import java.util.List; +import java.util.Set; public class MagalieActionSupport extends ActionSupport { @@ -41,12 +44,14 @@ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }); + protected Set<String> messages; + public List<String> getShortcuts () { return SHORTCUTS; } public boolean isWithMessages() { - return super.hasActionErrors() || super.hasActionMessages(); + return super.hasActionErrors() || super.hasActionMessages() || CollectionUtils.isNotEmpty(messages); } @Override @@ -54,4 +59,18 @@ return Objects.toStringHelper(this).toString(); } + public Set<String> getMessages() { + ImmutableSet<String> messages = ImmutableSet.copyOf(this.messages); + this.messages.clear(); + return messages; + } + + public void setMessages(Set<String> messages) { + this.messages = messages; + } + + protected void addMessage(String message) { + messages.add(message); + } + } Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java 2013-08-29 09:43:16 UTC (rev 391) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java 2013-08-29 10:48:01 UTC (rev 392) @@ -34,7 +34,6 @@ import com.franciaflex.magalie.web.action.RestoreFixturesAction; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Sets; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; import org.apache.commons.logging.Log; @@ -78,18 +77,10 @@ if (action instanceof MagalieActionSupport) { - // on ajoute les notifications pour l'utilisateur - - Set<String> messages = Sets.newLinkedHashSet(); - - // d'abord on récupère les notifications ajoutées par les actions dans la session - MagalieSession magalieSession = getMagalieSession(invocation); - messages.addAll(magalieSession.getMessagesAndClear()); + // on ajoute les notifications - // ensuite on ajoute les notifications ajoutées par les services - MagalieApplicationContext magalieApplicationContext = getMagalieApplicationContext(invocation); @@ -100,18 +91,10 @@ if (magalieUser != null) { - messages.addAll(userNotificationContext.getMessagesAndClearFor(magalieUser)); + ((MagalieActionSupport) action).setMessages(userNotificationContext.getMessages(magalieUser)); } - // on ajoute tous ces messages comme actionMessage - - for (String message : messages) { - - ((MagalieActionSupport) action).addActionMessage(message); - - } - Class<?> actionClass = action.getClass(); Set<PropertyDescriptor> descriptors = Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieSession.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieSession.java 2013-08-29 09:43:16 UTC (rev 391) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieSession.java 2013-08-29 10:48:01 UTC (rev 392) @@ -33,7 +33,6 @@ import java.io.Serializable; import java.util.Collection; -import java.util.List; /** * The single object every user will have in its session. @@ -88,16 +87,6 @@ this.lastUsedDestinationWarehouseForKanbans = lastUsedDestinationWarehouseForKanbans; } - public void addMessage(String message) { - messages.add(message); - } - - public List<String> getMessagesAndClear() { - List<String> messages = Lists.newArrayList(this.messages); - this.messages.clear(); - return messages; - } - public Activity getActivity() { return activity; } Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/StrutsActionMessagesUserNotificationContext.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/StrutsActionMessagesUserNotificationContext.java 2013-08-29 09:43:16 UTC (rev 391) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/StrutsActionMessagesUserNotificationContext.java 2013-08-29 10:48:01 UTC (rev 392) @@ -81,8 +81,8 @@ return usersNotifications; } - public Set<String> getMessagesAndClearFor(MagalieUser magalieUser) { - return usersNotifications.removeAll(magalieUser); + public Set<String> getMessages(MagalieUser magalieUser) { + return usersNotifications.get(magalieUser); } } Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java 2013-08-29 09:43:16 UTC (rev 391) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java 2013-08-29 10:48:01 UTC (rev 392) @@ -133,19 +133,19 @@ if (findOrderToExecuteResult.isNothingToDo()) { - addActionMessage("Il n'y a aucune demande. Vous n'avez rien à faire"); + addMessage("Il n'y a aucune demande. Vous n'avez rien à faire"); } if (findOrderToExecuteResult.isDriverLicenseRequired()) { - addActionMessage("Il y a des demandes en cours, mais un permis est requis"); + addMessage("Il y a des demandes en cours, mais un permis est requis"); } if (findOrderToExecuteResult.isEverythingUnavailable()) { - addActionMessage("Toutes les demandes en cours concernent des articles indisponibles"); + addMessage("Toutes les demandes en cours concernent des articles indisponibles"); } Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ReceiveArticleAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ReceiveArticleAction.java 2013-08-29 09:43:16 UTC (rev 391) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ReceiveArticleAction.java 2013-08-29 10:48:01 UTC (rev 392) @@ -113,7 +113,7 @@ } catch (PreparedArticleReceptionAlreadyStoredException e) { - session.addMessage("Article déjà rangé"); + addMessage("Article déjà rangé"); log.warn("should never occur", e); @@ -121,7 +121,7 @@ } catch (InvalidMagalieBarcodeException e) { - session.addMessage("Le code n'est pas valide"); + addMessage("Le code n'est pas valide"); log.warn("should never occur", e); Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/RestoreFixturesAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/RestoreFixturesAction.java 2013-08-29 09:43:16 UTC (rev 391) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/RestoreFixturesAction.java 2013-08-29 10:48:01 UTC (rev 392) @@ -51,7 +51,7 @@ service.cleanDatabaseAndLoadFixtures("fixtures"); - session.addMessage("Jeu de données initial restauré"); + addMessage("Jeu de données initial restauré"); return SUCCESS; Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/SimpleWithdrawItemAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/SimpleWithdrawItemAction.java 2013-08-29 09:43:16 UTC (rev 391) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/SimpleWithdrawItemAction.java 2013-08-29 10:48:01 UTC (rev 392) @@ -100,13 +100,13 @@ log.error("should never occur, barcode is validated before arriving in this action", e); - session.addMessage("Le code barre " + articleBarcode + " n'est pas un code valide"); + addMessage("Le code barre " + articleBarcode + " n'est pas un code valide"); return ERROR; } catch (IllegalWithdrawException e) { - session.addMessage("Cet article ne peut pas être prélevé avec cette méthode"); + addMessage("Cet article ne peut pas être prélevé avec cette méthode"); return ERROR; @@ -114,7 +114,7 @@ if (simpleWithdrawItemTask.isDriverLicenseRequired()) { - session.addMessage("Un permis est requis pour accéder à cet article"); + addMessage("Un permis est requis pour accéder à cet article"); return ERROR; @@ -122,7 +122,7 @@ if (simpleWithdrawItemTask.isArticleUnavailable()) { - session.addMessage("Cet article n'est pas disponible"); + addMessage("Cet article n'est pas disponible"); return ERROR; Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java 2013-08-29 09:43:16 UTC (rev 391) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java 2013-08-29 10:48:01 UTC (rev 392) @@ -250,7 +250,7 @@ locationErrorsService.reportError(storedArticleId, magalieUser); - session.addMessage("L'emplacement a bien été reporté en erreur"); + addMessage("L'emplacement a bien été reporté en erreur"); return ERROR; Modified: trunk/magalie-web/src/main/webapp/WEB-INF/decorators/layout.jsp =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2013-08-29 09:43:16 UTC (rev 391) +++ trunk/magalie-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2013-08-29 10:48:01 UTC (rev 392) @@ -50,6 +50,9 @@ <s:iterator value="actionErrors" var="actionError" > alert('<s:property value="#actionError" escapeJavaScript="true" escapeHtml="false"/>'); </s:iterator> + <s:iterator value="messages" var="message" > + alert('<s:property value="#message" escapeJavaScript="true" escapeHtml="false"/>'); + </s:iterator> }); </script> </s:if>
participants (1)
-
bleny@users.forge.codelutin.com