Jacopo,
Yes, this makes sense. Just get and show all messages. You might want
to filter out duplicate messages, ie the same as another message
already in the list.
BTW, a success message could be an individual message as well as the
list of messages.
-David
On Nov 1, 2006, at 2:06 AM, Jacopo Cappellato wrote:
What do you think of the attached patch?
The success message list is pulled from the services (invoked thru
the service-multi handler) so that the messages returned by the
services are shown on screen: this will make the output a bit more
verbose (especially if you submit big lists of services) but I
think it's worth having.
Can I commit it?
Jacopo
Index: framework/webapp/src/org/ofbiz/webapp/event/
ServiceMultiEventHandler.java
===================================================================
--- framework/webapp/src/org/ofbiz/webapp/event/
ServiceMultiEventHandler.java (revision 468843)
+++ framework/webapp/src/org/ofbiz/webapp/event/
ServiceMultiEventHandler.java (working copy)
@@ -150,8 +150,9 @@
String messagePrefixStr = UtilProperties.getMessage
("DefaultMessages", "service.message.prefix", locale);
String messageSuffixStr = UtilProperties.getMessage
("DefaultMessages", "service.message.suffix", locale);
- // prepare the error message list
+ // prepare the error message and success message lists
List errorMessages = FastList.newInstance();
+ List successMessages = FastList.newInstance();
// big try/finally to make sure commit or rollback are run
boolean beganTrans = false;
@@ -296,7 +297,16 @@
if (UtilValidate.isNotEmpty(errorMessage)) {
errorMessages.add(errorMessage);
}
-
+
+ // get the success message
+ if (!UtilValidate.isEmpty((List)result.get
(ModelService.SUCCESS_MESSAGE_LIST))) {
+ successMessages.addAll((List)result.get
(ModelService.SUCCESS_MESSAGE_LIST));
+ }
+
// set the results in the request
if ((result != null) && (result.entrySet() !=
null)) {
Iterator rmei = result.entrySet().iterator();
@@ -339,6 +349,9 @@
Debug.logError(e, "Could not commit
transaction", module);
throw new EventHandlerException("Commit
transaction failed");
}
+ if (successMessages.size() > 0) {
+ request.setAttribute("_EVENT_MESSAGE_LIST_",
successMessages);
+ }
returnString = "success";
}
}