From 7d8874e0ae2815c2cdb4f52a9567a0f616ffabbb Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Thu, 23 Aug 2012 08:49:20 +0000 Subject: [PATCH] make basic search navigable git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1376407 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/webapp/js/archiva/main.js | 27 ++++++++++++++++++- .../src/main/webapp/js/archiva/search.js | 25 ++++++++++++++--- .../webapp/js/templates/archiva/search.html | 2 +- 3 files changed, 48 insertions(+), 6 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 240acdfe1..f4f1966af 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 @@ -208,8 +208,21 @@ function() { var repositoryIds = this.params.repositoryIds; var repos = repositoryIds.split("~"); $.log("queryterms:"+queryterms+',repositoryIds:'+repositoryIds+",repos:"+repos.length); + var searchViewModel = new SearchViewModel(); + var searchRequest = new SearchRequest(); + searchRequest.queryTerms(queryterms); + searchRequest.repositories=repos; + searchViewModel.searchRequest(searchRequest); + displaySearch(function(){ + searchViewModel.externalBasicSearch(); + },searchViewModel); + }); + + this.get('#searchresult~:repositoryIds/:queryterms',function(){ var queryterms= this.params.queryterms; - $.log("queryterms:"+queryterms); + var repositoryIds = this.params.repositoryIds; + var repos = repositoryIds.split("~"); + $.log("queryterms:"+queryterms+',repositoryIds:'+repositoryIds+",repos:"+repos.length); var searchViewModel = new SearchViewModel(); var searchRequest = new SearchRequest(); searchRequest.queryTerms(queryterms); @@ -220,6 +233,18 @@ function() { },searchViewModel); }); + this.get('#searchresult/:queryterms',function(){ + var queryterms= this.params.queryterms; + $.log("queryterms:"+queryterms); + var searchViewModel = new SearchViewModel(); + var searchRequest = new SearchRequest(); + searchRequest.queryTerms(queryterms); + searchViewModel.searchRequest(searchRequest); + displaySearch(function(){ + searchViewModel.externalBasicSearch(); + },searchViewModel); + }); + this.get('#open-admin-create-box',function(){ $.log("#open-admin-create-box"); adminCreateBox(); 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 898e37fe8..644e266d8 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 @@ -1533,6 +1533,7 @@ define("archiva.search",["jquery","i18n","jquery.tmpl","choosen","knockout","kno */ SearchViewModel=function(){ var self=this; + var mainContent=$("#main-content"); this.searchRequest=ko.observable(new SearchRequest()); this.observableRepoIds=ko.observableArray([]); this.selectedRepoIds=[]; @@ -1550,7 +1551,25 @@ define("archiva.search",["jquery","i18n","jquery.tmpl","choosen","knockout","kno // cleanup previours error message customShowError("#main-content #search-basic-form", null, null, []); } - self.search("restServices/archivaServices/searchService/quickSearchWithRepositories"); + var location="#searchresult"; + + self.selectedRepoIds=[]; + mainContent.find("#search-basic-repositories" ) + .find(".chzn-choices li span").each(function(i,span){ + self.selectedRepoIds.push($(span).html()); + } + ); + + if (self.selectedRepoIds.length>0){ + $.log("selectedRepoIds:"+self.selectedRepoIds.length); + $(self.selectedRepoIds).each(function(index, Element){ + location+="~"+self.selectedRepoIds[index]; + }); + } + location+="/"+queryTerm; + $.log("basicsearch location:"+location); + window.sammyArchivaApplication.setLocation(location); + //self.search("restServices/archivaServices/searchService/quickSearchWithRepositories"); } this.externalBasicSearch=function(){ @@ -1574,8 +1593,6 @@ define("archiva.search",["jquery","i18n","jquery.tmpl","choosen","knockout","kno } this.search=function(url,repositoriesIds){ - var mainContent=$("#main-content"); - var searchResultsGrid=mainContent.find("#search-results #search-results-grid" ); mainContent.find("#btn-basic-search" ).button("loading"); mainContent.find("#btn-advanced-search" ).button("loading"); @@ -1673,7 +1690,7 @@ define("archiva.search",["jquery","i18n","jquery.tmpl","choosen","knockout","kno $.log("repos:"+repos); searchViewModel.observableRepoIds(repos); ko.applyBindings(searchViewModel,mainContent.find("#search-artifacts-div").get(0)); - mainContent.find("#search-basic-repostories-select" ).chosen(); + mainContent.find("#search-basic-repositories-select" ).chosen(); if (successCallbackFn && $.isFunction(successCallbackFn)) successCallbackFn(); } }); 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 7f2addecd..5761389b4 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 @@ -213,7 +213,7 @@