]> source.dussan.org Git - archiva.git/commitdiff
implements a generic function to display error returned by rest call
authorOlivier Lamy <olamy@apache.org>
Mon, 16 Jan 2012 13:28:00 +0000 (13:28 +0000)
committerOlivier Lamy <olamy@apache.org>
Mon, 16 Jan 2012 13:28:00 +0000 (13:28 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1231994 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js

index fc261adaa284e79267dd217d1f37daecdf1aa781..9e6fc7af9528fcc3d2b057b757c0653ed3924ee9 100644 (file)
@@ -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,idToAppend) {
   }
 }
 
+/*
+ * 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