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/03/30 18:47:14 UTC

svn commit: r1307528 - in /archiva/trunk: ./ archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/ archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/ archiva-modul...

Author: olamy
Date: Fri Mar 30 16:47:14 2012
New Revision: 1307528

URL: http://svn.apache.org/viewvc?rev=1307528&view=rev
Log:
NPE check and start moving to a knockout model

Modified:
    archiva/trunk/README.txt
    archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.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/README.txt
URL: http://svn.apache.org/viewvc/archiva/trunk/README.txt?rev=1307528&r1=1307527&r2=1307528&view=diff
==============================================================================
--- archiva/trunk/README.txt (original)
+++ archiva/trunk/README.txt Fri Mar 30 16:47:14 2012
@@ -55,3 +55,7 @@ This file must contains:
           mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"/>
 
 </Context>
+
+jrebel
+generate files:  mvn org.zeroturnaround:jrebel-maven-plugin:1.1.3:generate -Pjs
+

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties?rev=1307528&r1=1307527&r2=1307528&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties Fri Mar 30 16:47:14 2012
@@ -397,5 +397,6 @@ fileupload.version=Version
 fileupload.packaging=Packaging
 fileupload.generatePom=Generate Maven POM
 fileupload.repositoryId=Repository Id
+fileupload.save=Save Files
 
 

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.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/api/DefaultFileUploadService.java?rev=1307528&r1=1307527&r2=1307528&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.java Fri Mar 30 16:47:14 2012
@@ -91,14 +91,21 @@ public class DefaultFileUploadService
             String repositoryId =
                 IOUtils.toString( multipartBody.getAttachment( "repositoryId" ).getDataHandler().getInputStream() );
 
-            boolean generatePom = BooleanUtils.toBoolean(
-                IOUtils.toString( multipartBody.getAttachment( "generatePom" ).getDataHandler().getInputStream() ) );
+            Attachment generatePomAttachment = multipartBody.getAttachment( "generatePom" );
+            boolean generatePom = BooleanUtils.toBoolean( generatePomAttachment == null
+                                                              ? Boolean.FALSE.toString()
+                                                              : IOUtils.toString(
+                                                                  generatePomAttachment.getDataHandler().getInputStream() ) );
 
             String classifier =
                 IOUtils.toString( multipartBody.getAttachment( "classifier" ).getDataHandler().getInputStream() );
 
-            boolean pomFile = BooleanUtils.toBoolean(
-                IOUtils.toString( multipartBody.getAttachment( "pomFile" ).getDataHandler().getInputStream() ) );
+            Attachment pomFileAttachment = multipartBody.getAttachment( "pomFile" );
+
+            boolean pomFile = BooleanUtils.toBoolean( pomFileAttachment == null
+                                                          ? Boolean.FALSE.toString()
+                                                          : IOUtils.toString(
+                                                              pomFileAttachment.getDataHandler().getInputStream() ) );
 
             log.info( "uploading file:" + groupId + ":" + artifactId + ":" + version );
             Attachment file = multipartBody.getAttachment( "files[]" );

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=1307528&r1=1307527&r2=1307528&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:14 2012
@@ -19,6 +19,23 @@
 define("archiva.artifacts-management",["jquery","i18n","order!utils","order!jquery.tmpl","order!knockout",
   "order!knockout.simpleGrid","jquery.validate","bootstrap","jquery.fileupload","jquery.fileupload.ui"]
     , function() {
+
+  ArtifactUpload=function(classifier,pomFile){
+    this.classifier=classifier;
+    this.pomFile=pomFile;
+  }
+
+  ArtifactUploadViewModel=function(managedRepositories){
+    this.managedRepositories=ko.observableArray(managedRepositories);
+    this.repositoryId=ko.observable();
+    this.groupId=ko.observable();
+    this.artifactId=ko.observable();
+    this.version=ko.observable();
+    this.packaging=ko.observable();
+    this.generatePom=ko.observable();
+
+  }
+
   displayUploadArtifact=function(){
     var mainContent=$("#main-content");
     mainContent.html(mediumSpinnerImg());
@@ -27,11 +44,17 @@ define("archiva.artifacts-management",["
         dataType: 'json',
         success: function(data) {
           mainContent.html($("#file-upload-tmpl" ).tmpl({managedRepositories: data}));
+          var artifactUploadViewModel=new ArtifactUploadViewModel(data);
+          ko.applyBindings(artifactUploadViewModel,mainContent.find("#file-upload-main" ).get(0));
+          mainContent.find("#fileupload-save-files" ).on("click",function(){
+            $.log("fileupload-save-files click");
+          });
+
           $('#fileupload').fileupload({
               add: function (e, data) {
                 data.timeStamp = $.now();
-                $.blueimpUI.fileupload.prototype
-                    .options.add.call(this, e, data);
+                $.log("fileupload add file");
+                $.blueimpUI.fileupload.prototype.options.add.call(this, e, data);
               }
             }
           );

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=1307528&r1=1307527&r2=1307528&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:14 2012
@@ -1,3 +1,7 @@
+<script id="file-upload-screen" type="text/html">
+  <div id="file-upload-main" ddata-bind='template:{name:"file-upload-tmpl"}'></div>
+</script>
+
 <script id="file-upload-tmpl" type="text/html">
   <div class="page-header">
     <h3>${$.i18n.prop('fileupload.header')}</h3>
@@ -9,45 +13,43 @@
       <div class="control-group">
         <label class="control-label" for="repositoryId">${$.i18n.prop('fileupload.repositoryId')}</label>
         <div class="controls">
-          <select id="repositoryId" name="repositoryId">
-            {{each(i,repository) managedRepositories}}
-              <option value="${repository.id}">${repository.name}</option>
-            {{/each}}
-          </select>
+          <select id="repositoryId"
+                    data-bind="options: managedRepositories, optionsText: 'name',optionsValue:'id',
+                     value: repositoryId"></select>
          </div>
         </div>
       <div class="control-group">
         <label class="control-label" for="groupId">${$.i18n.prop('fileupload.groupId')}</label>
         <div class="controls">
-          <input type="text" class="xlarge required" id="groupId" name="groupId" size="10" />
+          <input type="text" class="xlarge required" data-bind="value: groupId" id="groupId" name="groupId" size="10" />
           </div>
         </div>
       </div>
       <div class="control-group">
         <label class="control-label" for="artifactId">${$.i18n.prop('fileupload.artifactId')}</label>
         <div class="controls">
-          <input type="text" class="xlarge required" id="artifactId" name="artifactId" size="10" />
+          <input type="text" class="xlarge required" data-bind="value: artifactId" id="artifactId" name="artifactId" size="10" />
           </div>
         </div>
       </div>
       <div class="control-group">
         <label class="control-label" for="artifactId">${$.i18n.prop('fileupload.version')}</label>
         <div class="controls">
-          <input type="text" class="xlarge required" id="version" name="version" size="10" />
+          <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>
         <div class="controls">
-          <input type="text" class="xlarge required" id="packaging" name="packaging" size="10" />
+          <input type="text" class="xlarge required" data-bind="value: packaging" id="packaging" name="packaging" size="10" />
           </div>
         </div>
       </div>
       <div class="control-group">
         <label class="control-label" for="generatePom">${$.i18n.prop('fileupload.generatePom')}</label>
         <div class="controls">
-          <input type="checkbox" class="xlarge required" id="generatePom" name="generatePom" />
+          <input type="checkbox" class="xlarge required" data-bind="value: generatePom" id="generatePom" name="generatePom" />
           </div>
         </div>
       </div>
@@ -80,6 +82,14 @@
         </div>
       </div>
     </div>
+    <div>
+      <a href="#" id="fileupload-save-files">
+        <span class="btn btn-info">
+          <i class="icon-file icon-white"></i>
+          <span>${$.i18n.prop('fileupload.save')}</span>
+        </span>
+      </a>
+    </div>
     <div class="fileupload-loading"></div>
     <br>
     <table class="table table-striped">