Author: olamy
Date: Tue Aug  7 18:13:18 2012
New Revision: 1370413

URL: http://svn.apache.org/viewvc?rev=1370413&view=rev
Log:
support naviguation when browsing artifact, route: 
'#artifact/:groupId/:artifactId'

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

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js?rev=1370413&r1=1370412&r2=1370413&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js
 Tue Aug  7 18:13:18 2012
@@ -205,6 +205,15 @@ function() {
           return;
 
         });
+        
this.get('#artifact~:repositoryId/:groupId/:artifactId',function(context){
+          var groupId= this.params.groupId;
+          var artifactId= this.params.artifactId;
+          var repositoryId = this.params.repositoryId;
+          $.log("get #artifact:"+groupId+":"+artifactId);
+          
goToBrowseArtifactDetail(groupId,artifactId,repositoryId);//,null,null);
+          return;
+
+        });
         this.get('#artifact/:groupId/:artifactId/:version',function(context){
 
           var repositoryId = this.params.repositoryId;

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js?rev=1370413&r1=1370412&r2=1370413&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
 Tue Aug  7 18:13:18 2012
@@ -154,6 +154,16 @@ define("archiva.search",["jquery","i18n"
       artifactVersionDetailViewModel.display();
     }
 
+    displayGroupId=function(groupId){
+      var selectedRepo=getSelectedBrowsingRepository();
+      var location ="#browse";
+      if (selectedRepo){
+        location+="~"+selectedRepo;
+      }
+      location+="/"+groupId;
+      window.sammyArchivaApplication.setLocation(location);
+    }
+
   }
 
   displayArtifactVersionDetailViewModel=function(groupId,artifactId,version){
@@ -598,10 +608,10 @@ define("archiva.search",["jquery","i18n"
     artifactVersionDetailViewModel.display();
   }
 
-  goToBrowseArtifactDetail=function(groupId, artifactId){
+  goToBrowseArtifactDetail=function(groupId, artifactId,repositoryId){
     $.log("goToBrowseArtifactDetail:"+groupId+":"+artifactId);
-    displayBrowseGroupId(groupId,null,null);
-    displayArtifactDetail(groupId,artifactId,null,null);
+    //displayBrowseGroupId(groupId,null,null);
+    displayArtifactDetail(groupId,artifactId,null,null,repositoryId);
   }
 
   /**
@@ -636,42 +646,56 @@ define("archiva.search",["jquery","i18n"
    * @param parentBrowseViewModel
    * @param restUrl
    */
-  
displayArtifactDetail=function(groupId,artifactId,parentBrowseViewModel,restUrl){
+  
displayArtifactDetail=function(groupId,artifactId,parentBrowseViewModel,restUrl,repositoryId){
     $.log("displayArtifactDetail:"+groupId+":"+artifactId);
     var artifactDetailViewModel=new 
ArtifactDetailViewModel(groupId,artifactId);
     var mainContent = $("#main-content");
-    mainContent.find("#browse_artifact_detail" ).hide();
-    mainContent.find("#browse_result").hide();
-    mainContent.find("#main_browse_result_content").hide("slide", {}, 
300,function(){
-      mainContent.find("#browse_breadcrumb").html(smallSpinnerImg());
-      mainContent.find("#browse_artifact").show();
-      mainContent.find("#browse_artifact").html(mediumSpinnerImg());
-      mainContent.find("#main_browse_result_content").show();
-      var 
metadataUrl="restServices/archivaServices/browseService/projectVersionMetadata/"+encodeURIComponent(groupId)+"/"+encodeURIComponent(artifactId);
-      var 
versionsListUrl="restServices/archivaServices/browseService/versionsList/"+encodeURIComponent(groupId)+"/"+encodeURIComponent(artifactId);
-      var selectedRepo=getSelectedBrowsingRepository();
-      if (selectedRepo){
-        metadataUrl+="?repositoryId="+encodeURIComponent(selectedRepo);
-        versionsListUrl+="?repositoryId="+encodeURIComponent(selectedRepo);
-      }
-      $.ajax(metadataUrl, {
-        type: "GET",
-        dataType: 'json',
-        success: function(data) {
-          
artifactDetailViewModel.projectVersionMetadata=mapProjectVersionMetadata(data);
-          $.ajax(versionsListUrl, {
+
+    mainContent.html($("#browse-tmpl" ).tmpl());
+
+    userRepositoriesCall(
+        function(data){
+
+          if(repositoryId){
+            mainContent.find("#selected_repository" 
).html($("#selected_repository_tmpl" 
).tmpl({repositories:data,selected:repositoryId}));
+          } else {
+            mainContent.find("#selected_repository" 
).html($("#selected_repository_tmpl" ).tmpl({repositories:data,selected:''}));
+          }
+
+          mainContent.find("#browse_artifact_detail" ).hide();
+          mainContent.find("#browse_result").hide();
+          mainContent.find("#main_browse_result_content").hide("slide", {}, 
300,function(){
+          mainContent.find("#browse_breadcrumb").html(smallSpinnerImg());
+          mainContent.find("#browse_artifact").show();
+          mainContent.find("#browse_artifact").html(mediumSpinnerImg());
+          mainContent.find("#main_browse_result_content").show();
+          var 
metadataUrl="restServices/archivaServices/browseService/projectVersionMetadata/"+encodeURIComponent(groupId)+"/"+encodeURIComponent(artifactId);
+          var 
versionsListUrl="restServices/archivaServices/browseService/versionsList/"+encodeURIComponent(groupId)+"/"+encodeURIComponent(artifactId);
+          var selectedRepo=getSelectedBrowsingRepository();
+          if (selectedRepo){
+            metadataUrl+="?repositoryId="+encodeURIComponent(selectedRepo);
+            versionsListUrl+="?repositoryId="+encodeURIComponent(selectedRepo);
+          }
+          $.ajax(metadataUrl, {
             type: "GET",
             dataType: 'json',
             success: function(data) {
-              artifactDetailViewModel.versions=mapVersionsList(data);
-              
ko.applyBindings(artifactDetailViewModel,mainContent.find("#browse_artifact").get(0));
-              
ko.applyBindings(artifactDetailViewModel,mainContent.find("#browse_breadcrumb").get(0));
-
-             }
+              
artifactDetailViewModel.projectVersionMetadata=mapProjectVersionMetadata(data);
+              $.ajax(versionsListUrl, {
+                type: "GET",
+                dataType: 'json',
+                success: function(data) {
+                  artifactDetailViewModel.versions=mapVersionsList(data);
+                  
ko.applyBindings(artifactDetailViewModel,mainContent.find("#browse_artifact").get(0));
+                  
ko.applyBindings(artifactDetailViewModel,mainContent.find("#browse_breadcrumb").get(0));
+                 }
+              });
+            }
           });
-        }
       });
+
     });
+
   }
 
   browseRoot=function(){
@@ -847,7 +871,6 @@ define("archiva.search",["jquery","i18n"
           }
           location+="/"+ui.item.name;
           window.sammyArchivaApplication.setLocation(location);
-          //displayBrowseGroupIdFromAutoComplete(ui.item.name);
         }
         return false;
       }


Reply via email to