From ce9d1c8f8f758b972876ef4f0051541ee0d5d2c6 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Thu, 9 Aug 2012 21:12:28 +0000 Subject: [PATCH] history navigation when seeing artifact dependency tree git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1371486 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/webapp/js/archiva/main.js | 22 +++++++ .../src/main/webapp/js/archiva/search.js | 63 +++++++++++++------ .../webapp/js/templates/archiva/search.html | 2 +- 3 files changed, 67 insertions(+), 20 deletions(-) diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js index d429e96f6..a6dbf99a9 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js @@ -281,6 +281,28 @@ function() { }); + + this.get('#artifact-dependency-tree/:groupId/:artifactId/:version',function(context){ + + var repositoryId = this.params.repositoryId; + var groupId= this.params.groupId; + var artifactId= this.params.artifactId; + var version= this.params.version; + generalDisplayArtifactDetailsVersionView(groupId,artifactId,version,repositoryId,function(){$("#main-content #artifact-details-dependency-tree-content-a").tab('show')}); + + }); + + this.get('#artifact-dependency-tree~:repositoryId/:groupId/:artifactId/:version',function(context){ + + var repositoryId = this.params.repositoryId; + var groupId= this.params.groupId; + var artifactId= this.params.artifactId; + var version= this.params.version; + generalDisplayArtifactDetailsVersionView(groupId,artifactId,version,repositoryId,function(){$("#main-content #artifact-details-dependency-tree-content-a").tab('show')}); + + }); + + this.get('#browse/:groupId',function(context){ var groupId = this.params.groupId; if (groupId){ diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js index 7874b1322..8bc309e04 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js @@ -243,8 +243,43 @@ define("archiva.search",["jquery","i18n","jquery.tmpl","choosen","knockout","kno ko.applyBindings(self,mainContent.find("#browse_breadcrumb" ).get(0)); mainContent.find("#browse-autocomplete" ).hide(); mainContent.find("#browse-autocomplete-divider" ).hide(); + + //calculate tree content + var treeContentDiv=mainContent.find("#artifact-details-dependency-tree-content" ); + if( $.trim(treeContentDiv.html()).length<1){ + treeContentDiv.html(mediumSpinnerImg()); + var treeDependencyUrl="restServices/archivaServices/browseService/treeEntries/"+encodeURIComponent(groupId); + treeDependencyUrl+="/"+encodeURIComponent(artifactId); + treeDependencyUrl+="/"+encodeURIComponent(version); + var selectedRepo=getSelectedBrowsingRepository(); + if (selectedRepo){ + treeDependencyUrl+="?repositoryId="+encodeURIComponent(selectedRepo); + } + $.ajax(treeDependencyUrl, { + type: "GET", + dataType: 'json', + success: function(data) { + var treeEntries = mapTreeEntries(data); + treeContentDiv.html($("#dependency_tree_tmpl" ).tmpl({treeEntries: treeEntries})); + } + }); + } + + mainContent.find("#artifact-details-tabs").on('show', function (e) { + if ($(e.target).attr("data-target")=="#artifact-details-info-content") { + var location ="#artifact"; + if (self.repositoryId){ + location+="~"+self.repositoryId; + } + location+="/"+self.groupId+"/"+self.artifactId+"/"+self.version; + + window.sammyArchivaApplication.setLocation(location); + return; + } + + if ($(e.target).attr("data-target")=="#artifact-details-dependencies-content") { var location ="#artifact-dependencies"; if (self.repositoryId){ @@ -253,28 +288,18 @@ define("archiva.search",["jquery","i18n","jquery.tmpl","choosen","knockout","kno location+="/"+self.groupId+"/"+self.artifactId+"/"+self.version; window.sammyArchivaApplication.setLocation(location); + return; } - if ($(e.target).attr("href")=="#artifact-details-dependency-tree-content") { - var treeContentDiv=mainContent.find("#artifact-details-dependency-tree-content" ); - if( $.trim(treeContentDiv.html()).length<1){ - treeContentDiv.html(mediumSpinnerImg()); - var treeDependencyUrl="restServices/archivaServices/browseService/treeEntries/"+encodeURIComponent(groupId); - treeDependencyUrl+="/"+encodeURIComponent(artifactId); - treeDependencyUrl+="/"+encodeURIComponent(version); - var selectedRepo=getSelectedBrowsingRepository(); - if (selectedRepo){ - treeDependencyUrl+="?repositoryId="+encodeURIComponent(selectedRepo); - } - $.ajax(treeDependencyUrl, { - type: "GET", - dataType: 'json', - success: function(data) { - var treeEntries = mapTreeEntries(data); - treeContentDiv.html($("#dependency_tree_tmpl" ).tmpl({treeEntries: treeEntries})); - } - }); + if ($(e.target).attr("data-target")=="#artifact-details-dependency-tree-content") { + var location ="#artifact-dependency-tree"; + if (self.repositoryId){ + location+="~"+self.repositoryId; } + location+="/"+self.groupId+"/"+self.artifactId+"/"+self.version; + + window.sammyArchivaApplication.setLocation(location); + return; return; } if ($(e.target).attr("href")=="#artifact-details-used-by-content") { diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/search.html b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/search.html index cdf46e646..6b95a5bb8 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/search.html +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/search.html @@ -426,7 +426,7 @@