]> source.dussan.org Git - archiva.git/commitdiff
[MRM-1621] add download box in artifact detail for new ui.
authorOlivier Lamy <olamy@apache.org>
Tue, 29 May 2012 16:35:00 +0000 (16:35 +0000)
committerOlivier Lamy <olamy@apache.org>
Tue, 29 May 2012 16:35:00 +0000 (16:35 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1343828 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/AbstractRestService.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/search.html

index 41f3944038aaf557ae83de1d62aabd33eb919839..9f76d191a39e3005b40d3bb2577bc656e2123808 100644 (file)
@@ -23,6 +23,7 @@ import org.apache.archiva.admin.model.RepositoryAdminException;
 import org.apache.archiva.admin.model.admin.ArchivaAdministration;
 import org.apache.archiva.audit.AuditEvent;
 import org.apache.archiva.audit.AuditListener;
+import org.apache.archiva.common.utils.VersionUtil;
 import org.apache.archiva.metadata.repository.RepositorySessionFactory;
 import org.apache.archiva.redback.rest.services.RedbackAuthenticationThreadLocal;
 import org.apache.archiva.redback.rest.services.RedbackRequestInformation;
@@ -196,7 +197,14 @@ public abstract class AbstractRestService
 
             sb.append( '/' ).append( StringUtils.replaceChars( artifact.getGroupId(), '.', '/' ) );
             sb.append( '/' ).append( artifact.getArtifactId() );
-            sb.append( '/' ).append( artifact.getVersion() );
+            if ( VersionUtil.isSnapshot( artifact.getVersion() ) )
+            {
+                sb.append( '/' ).append( VersionUtil.getBaseVersion( artifact.getVersion() ) );
+            }
+            else
+            {
+                sb.append( '/' ).append( artifact.getVersion() );
+            }
             sb.append( '/' ).append( artifact.getArtifactId() );
             sb.append( '-' ).append( artifact.getVersion() );
             if ( StringUtils.isNotBlank( artifact.getClassifier() ) )
index 611f25466529ac6175f98ccd9d2803fd91326c3a..262bae592e1bc5af2b9ade21272750eb91977b22 100644 (file)
@@ -688,7 +688,7 @@ public class DefaultBrowseService
                             repositoryContentFactory.getManagedRepositoryContent( repoId ) );
                     Artifact art = builder.build();
 
-                    art.setUrl( getArtifactUrl( art, artifact.getVersion() ) );
+                    art.setUrl( getArtifactUrl( art, version ) );
                     artifactDownloadInfos.add( art );
                 }
 
index b2ca397ca4b2b14f7c2791d41defcd3ddd17de13..dd0ab4a7a1cbc5b617d17042a102c9405e7489cf 100644 (file)
@@ -224,6 +224,7 @@ define("search",["jquery","i18n","jquery.tmpl","choosen","order!knockout","knock
                       }
                     });
                   }
+                  return;
                 }
                 if ($(e.target).attr("href")=="#artifact-details-used-by-content") {
                   var dependeesContentDiv=mainContent.find("#artifact-details-used-by-content" );
@@ -245,6 +246,7 @@ define("search",["jquery","i18n","jquery.tmpl","choosen","order!knockout","knock
                       }
                     });
                   }
+                  return;
                 }
 
                 if ($(e.target).attr("href")=="#artifact-details-metadatas-content") {
@@ -267,8 +269,23 @@ define("search",["jquery","i18n","jquery.tmpl","choosen","order!knockout","knock
                       self.entries(entries);
                     }
                   });
+                  return;
                 }
 
+                if ($(e.target).attr("href")=="#artifact-details-download-content") {
+                  $.log("artifact metadata");
+                  //
+                  mainContent.find("#artifact-details-download-content" ).html(smallSpinnerImg());
+                  var artifactDownloadInfosUrl = "restServices/archivaServices/browseService/artifactDownloadInfos/"+encodeURIComponent(self.groupId);
+                  artifactDownloadInfosUrl+="/"+encodeURIComponent(self.artifactId)+"/"+encodeURIComponent(self.version);
+                  artifactDownloadInfosUrl+="?repositoryId="+encodeURIComponent(getSelectedBrowsingRepository());
+                  $.get(artifactDownloadInfosUrl,function(data){
+                    $("#artifact-details-download-content" ).html($("#artifact-details-download-content_tmpl").tmpl({artifactDownloadInfos:data}));
+                  });
+                  return;
+                }
+
+
                 if ($(e.target).attr("href")=="#artifact-details-files-content") {
                   mainContent.find("#artifact-details-files-content" ).html(smallSpinnerImg());
                   var artifactDownloadInfosUrl = "restServices/archivaServices/browseService/artifactDownloadInfos/"+encodeURIComponent(self.groupId);
index db94da2fe98d9f39713b04e4a5f641470656c101..ffd93c668bfd27e2c5ced3f96939ae55a89654ea 100644 (file)
       <li>
         <a data-toggle="tab" href="#artifact-details-files-content">${$.i18n.prop('artifact.detail.tab.header.file.content')}</a>
       </li>
+      <li>
+        <a data-toggle="tab" href="#artifact-details-download-content">${$.i18n.prop('artifact.detail.tab.header.file.download')}</a>
+      </li>
       <li>
         <a data-toggle="tab" href="#artifact-details-used-by-content">${$.i18n.prop('artifact.detail.tab.header.used.by')}</a>
       </li>
       </div>
 
       <div id="artifact-details-files-content" class="tab-pane">
+      </div>
 
+      <div id="artifact-details-download-content" class="tab-pane">
       </div>
 
       <div id="artifact-details-used-by-content" class="tab-pane"></div>
       <div class="source">
          <pre class="prettyprint linenums" id="artifact-content-text"></pre>
       </div>
+</script>
+
+<script id="artifact-details-download-content_tmpl" type="text/html">
+    <ul id="artifact-download-list-files">
+    {{each artifactDownloadInfos}}
+      <li>
+        <a href="${$value.url}">${$value.packaging}:${$value.version}&nbsp;-&nbsp;${$value.size}</a>
+      </li>
+    {{/each}}
+    </ul>
 </script>
\ No newline at end of file