Author: jogep Date: Mon Mar 7 21:44:34 2011 New Revision: 1078966 URL: http://svn.apache.org/viewvc?rev=1078966&view=rev Log: WW-3395: Client Validation don't display Global Messages
Modified: struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/utils.js Modified: struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/utils.js URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/utils.js?rev=1078966&r1=1078965&r2=1078966&view=diff ============================================================================== --- struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/utils.js (original) +++ struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/utils.js Mon Mar 7 21:44:34 2011 @@ -32,24 +32,50 @@ StrutsUtils.getValidationErrors = functi }; StrutsUtils.clearValidationErrors = function(form) { - var firstNode = StrutsUtils.firstElement(form); - var xhtml = firstNode.tagName.toLowerCase() == "table"; - - if(xhtml) { - clearErrorMessagesXHTML(form); - clearErrorLabelsXHTML(form); - } else { - clearErrorMessagesCSS(form); - clearErrorLabelsCSS(form); - } -}; + var firstNode = StrutsUtils.firstElement(form); + var xhtml = firstNode.tagName.toLowerCase() == "table"; + + if(xhtml) { + clearErrorMessagesXHTML(form); + clearErrorLabelsXHTML(form); + } else { + clearErrorMessagesCSS(form); + clearErrorLabelsCSS(form); + } + + //clear previous global error messages + if(StrutsUtils.errorLists[form] && StrutsUtils.errorLists[form] !== null) { + form.parentNode.removeChild(StrutsUtils.errorLists[form]); + StrutsUtils.errorLists[form] = null; + } + +}; + +StrutsUtils.errorLists = []; // shows validation errors using functions from xhtml/validation.js // or css_xhtml/validation.js StrutsUtils.showValidationErrors = function(form, errors) { - StrutsUtils.clearValidationErrors(form, errors); + StrutsUtils.clearValidationErrors(form, errors); + + if (errors.errors) { + var errorList = document.createElement("ul"); + errorList.setAttribute("class", "errorMessage"); + errorList.setAttribute("className", "errorMessage"); // ie hack cause ie does not support setAttribute + + for ( var l = 0; l < errors.errors.length; l++) { + var item = document.createElement("li"); + var itemText = document.createTextNode(errors.errors[l]); + item.appendChild(itemText); + + errorList.appendChild(item); + } + + form.parentNode.insertBefore(errorList, form); + StrutsUtils.errorLists[form] = errorList; + } - var firstNode = StrutsUtils.firstElement(form); + var firstNode = StrutsUtils.firstElement(form); var xhtml = firstNode.tagName.toLowerCase() == "table"; if(errors.fieldErrors) { for(var fieldName in errors.fieldErrors) {