You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/01/16 14:28:01 UTC

svn commit: r1231994 - /archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js

Author: olamy
Date: Mon Jan 16 13:28:00 2012
New Revision: 1231994

URL: http://svn.apache.org/viewvc?rev=1231994&view=rev
Log:
implements a generic function to display error returned by rest call

Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js?rev=1231994&r1=1231993&r2=1231994&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js Mon Jan 16 13:28:00 2012
@@ -215,22 +215,6 @@ $.extend($.tmpl.tag, {
     }
 });
 
-displayRestError=function(data,idToAppend){
-
-  if (data.redbackRestError){
-    displayRedbackError(archivaRestError,idToAppend)
-  }
-
-  if (data.archivaRestError && data.archivaRestError.errorKey && data.archivaRestError.errorKey.length>0){
-      $.log("with errorKey:"+dataarchivaRestError.errorKey);
-      displayErrorMessage($.i18n.prop( data.archivaRestError.errorKey ),idToAppend);
-    } else {
-      $.log("data.errorMessage:"+data.archivaRestError.errorMessage);
-      displayErrorMessage(data.archivaRestError.errorMessage,idToAppend);
-  }
-
-}
-
 /**
  * display redback error from redback json error response
  * {"redbackRestError":{"errorMessages":{"args":1,"errorKey":"user.password.violation.numeric"}}}
@@ -252,13 +236,57 @@ displayRedbackError=function(obj,idToApp
   }
 }
 
+/*
+ * generic function to display error return by rest service
+ * if fieldName is here the function will try to find a field with this name and add a span on it
+ * if not error is displayed in #user-messages div
+ */
+displayRestError=function(data,idToAppend){
+
+  if (data.redbackRestError){
+    displayRedbackError(archivaRestError,idToAppend)
+  }
+  // if we have the fieldName display error on it
+  if (data.archivaRestError && data.archivaRestError.fieldName){
+    if ($("#main-content #"+data.archivaRestError.fieldName)){
+      var message=null;
+      if (data.archivaRestError.errorKey) {
+        message=$.i18n.prop('data.archivaRestError.errorKey');
+      } else {
+        message=data.archivaRestError.errorMessage;
+      }
+      $( "#main-content div.clearfix" ).removeClass( "error" );
+      $( "#main-content span.help-inline" ).remove();
+      $("#main-content #"+data.archivaRestError.fieldName).parents( "div.clearfix" ).addClass( "error" );
+      $("#main-content #"+data.archivaRestError.fieldName).parent().append( "<span class=\"help-inline\">" + message + "</span>" );
+      return;
+    }
+    // we don't have any id with this fieldName so continue
+  }
+
+  if (data.archivaRestError && data.archivaRestError.errorKey && data.archivaRestError.errorKey.length>0){
+      $.log("with errorKey:"+dataarchivaRestError.errorKey);
+      displayErrorMessage($.i18n.prop( data.archivaRestError.errorKey ),idToAppend);
+    } else {
+      $.log("data.errorMessage:"+data.archivaRestError.errorMessage);
+      displayErrorMessage(data.archivaRestError.errorMessage,idToAppend);
+  }
+
+}
+
+/**
+ * used by validation error to customize error display in the ui
+ * @param validator
+ * @param errorMap
+ * @param errorList
+ */
 customShowError=function(validator, errorMap, errorList) {
-  $( "div.clearfix" ).removeClass( "error" );
-  $( "span.help-inline" ).remove();
+  $( "#main-content div.clearfix" ).removeClass( "error" );
+  $( "#main-content span.help-inline" ).remove();
   for ( var i = 0; errorList[i]; i++ ) {
     var error = errorList[i];
     var field = $("#"+error.element.id);
     field.parents( "div.clearfix" ).addClass( "error" );
-    field.parent().append( "<span class=\"help-inline\">" + error.message + "</span>" )
+    field.parent().append( "<span class=\"help-inline\">" + error.message + "</span>" );
   }
 }
\ No newline at end of file