Author: olamy
Date: Fri Mar 30 16:47:54 2012
New Revision: 1307531

URL: http://svn.apache.org/viewvc?rev=1307531&view=rev
Log:
file upload form validation

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/model/FileMetadata.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/artifacts-management.html

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/model/FileMetadata.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/model/FileMetadata.java?rev=1307531&r1=1307530&r2=1307531&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/model/FileMetadata.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/model/FileMetadata.java
 Fri Mar 30 16:47:54 2012
@@ -113,7 +113,6 @@ public class FileMetadata
         return deleteUrl;
     }
 
-
     public void setDeleteUrl( String deleteUrl )
     {
         this.deleteUrl = deleteUrl;
@@ -279,4 +278,5 @@ public class FileMetadata
         sb.append( '}' );
         return sb.toString();
     }
+
 }

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js?rev=1307531&r1=1307530&r2=1307531&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js
 Fri Mar 30 16:47:54 2012
@@ -26,6 +26,7 @@ define("archiva.artifacts-management",["
   }
 
   ArtifactUploadViewModel=function(managedRepositories){
+    var self=this;
     this.managedRepositories=ko.observableArray(managedRepositories);
     this.repositoryId=ko.observable();
     this.groupId=ko.observable();
@@ -34,8 +35,17 @@ define("archiva.artifacts-management",["
     this.packaging=ko.observable();
     this.generatePom=ko.observable();
 
+    this.artifactUploads=[];
+
     saveArtifacts=function(){
-      $.log("saveArtifacts");
+
+      if(!$("#main-content #fileupload" ).valid()){
+        return;
+      }
+      if(this.artifactUploads.length<1){
+        displayErrorMessage( $.i18n.prop("fileupload.upload.required"));
+        return;
+      }
     }
 
   }
@@ -50,7 +60,11 @@ define("archiva.artifacts-management",["
         success: function(data) {
           var artifactUploadViewModel=new ArtifactUploadViewModel(data);
           
ko.applyBindings(artifactUploadViewModel,mainContent.find("#file-upload-main" 
).get(0));
-
+          var validator =  $("#main-content #fileupload" ).validate({
+            showErrors: function(validator, errorMap, errorList) {
+             customShowError("#main-content 
#fileupload",validator,errorMap,errorMap);
+            }
+          });
           $('#fileupload').fileupload({
               add: function (e, data) {
                 data.formData = {
@@ -61,16 +75,20 @@ define("archiva.artifacts-management",["
                   generatePom: artifactUploadViewModel.generatePom(),
                   repositoryId: artifactUploadViewModel.repositoryId()
                 };
-                $.log("fileupload add file");
                 $.blueimpUI.fileupload.prototype.options.add.call(this, e, 
data);
+              },
+              submit: function (e, data) {
+                var $this = $(this);
+
+                $this.fileupload('send', data);
+                artifactUploadViewModel.artifactUploads.push(new 
ArtifactUpload(data.formData.classifier,data.formData.pomFile));
+                return false;
               }
             }
           );
           $('#fileupload').bind('fileuploadsubmit', function (e, data) {
             var pomFile = data.context.find('#pomFile' ).val();
             var classifier = data.context.find('#classifier' ).val();
-
-            $.log("pomFile:"+pomFile+",classifier:"+classifier);
             data.formData.pomFile = pomFile;
             data.formData.classifier = classifier;
           });

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/artifacts-management.html
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/artifacts-management.html?rev=1307531&r1=1307530&r2=1307531&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/artifacts-management.html
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/artifacts-management.html
 Fri Mar 30 16:47:54 2012
@@ -33,14 +33,14 @@
         </div>
       </div>
       <div class="control-group">
-        <label class="control-label" 
for="artifactId">${$.i18n.prop('fileupload.version')}</label>
+        <label class="control-label" 
for="version">${$.i18n.prop('fileupload.version')}</label>
         <div class="controls">
           <input type="text" class="xlarge required" data-bind="value: 
version" id="version" name="version" size="10" />
           </div>
         </div>
       </div>
       <div class="control-group">
-        <label class="control-label" 
for="artifactId">${$.i18n.prop('fileupload.packaging')}</label>
+        <label class="control-label" 
for="packaging">${$.i18n.prop('fileupload.packaging')}</label>
         <div class="controls">
           <input type="text" class="xlarge required" data-bind="value: 
packaging" id="packaging" name="packaging" size="10" />
           </div>
@@ -49,7 +49,7 @@
       <div class="control-group">
         <label class="control-label" 
for="generatePom">${$.i18n.prop('fileupload.generatePom')}</label>
         <div class="controls">
-          <input type="checkbox" class="xlarge required" data-bind="value: 
generatePom" id="generatePom" name="generatePom" />
+          <input type="checkbox" class="xlarge" data-bind="value: generatePom" 
id="generatePom" name="generatePom" />
           </div>
         </div>
       </div>


Reply via email to