make basic search navigable

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1376407 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Olivier Lamy 2012-08-23 08:49:20 +00:00
parent c0bdc5622e
commit 7d8874e0ae
3 changed files with 48 additions and 6 deletions

View File

@ -208,12 +208,37 @@ function() {
var repositoryIds = this.params.repositoryIds; var repositoryIds = this.params.repositoryIds;
var repos = repositoryIds.split("~"); var repos = repositoryIds.split("~");
$.log("queryterms:"+queryterms+',repositoryIds:'+repositoryIds+",repos:"+repos.length); $.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;
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/:queryterms',function(){
var queryterms= this.params.queryterms; var queryterms= this.params.queryterms;
$.log("queryterms:"+queryterms); $.log("queryterms:"+queryterms);
var searchViewModel = new SearchViewModel(); var searchViewModel = new SearchViewModel();
var searchRequest = new SearchRequest(); var searchRequest = new SearchRequest();
searchRequest.queryTerms(queryterms); searchRequest.queryTerms(queryterms);
searchRequest.repositories=repos;
searchViewModel.searchRequest(searchRequest); searchViewModel.searchRequest(searchRequest);
displaySearch(function(){ displaySearch(function(){
searchViewModel.externalBasicSearch(); searchViewModel.externalBasicSearch();

View File

@ -1533,6 +1533,7 @@ define("archiva.search",["jquery","i18n","jquery.tmpl","choosen","knockout","kno
*/ */
SearchViewModel=function(){ SearchViewModel=function(){
var self=this; var self=this;
var mainContent=$("#main-content");
this.searchRequest=ko.observable(new SearchRequest()); this.searchRequest=ko.observable(new SearchRequest());
this.observableRepoIds=ko.observableArray([]); this.observableRepoIds=ko.observableArray([]);
this.selectedRepoIds=[]; this.selectedRepoIds=[];
@ -1550,7 +1551,25 @@ define("archiva.search",["jquery","i18n","jquery.tmpl","choosen","knockout","kno
// cleanup previours error message // cleanup previours error message
customShowError("#main-content #search-basic-form", null, null, []); 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(){ this.externalBasicSearch=function(){
@ -1574,8 +1593,6 @@ define("archiva.search",["jquery","i18n","jquery.tmpl","choosen","knockout","kno
} }
this.search=function(url,repositoriesIds){ this.search=function(url,repositoriesIds){
var mainContent=$("#main-content");
var searchResultsGrid=mainContent.find("#search-results #search-results-grid" ); var searchResultsGrid=mainContent.find("#search-results #search-results-grid" );
mainContent.find("#btn-basic-search" ).button("loading"); mainContent.find("#btn-basic-search" ).button("loading");
mainContent.find("#btn-advanced-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); $.log("repos:"+repos);
searchViewModel.observableRepoIds(repos); searchViewModel.observableRepoIds(repos);
ko.applyBindings(searchViewModel,mainContent.find("#search-artifacts-div").get(0)); 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(); if (successCallbackFn && $.isFunction(successCallbackFn)) successCallbackFn();
} }
}); });

View File

@ -213,7 +213,7 @@
<fieldset> <fieldset>
<div class="control-group" id="search-basic-repositories"> <div class="control-group" id="search-basic-repositories">
<select data-placeholder="${$.i18n.prop('search.artifact.search.form.query.repositories')}" <select data-placeholder="${$.i18n.prop('search.artifact.search.form.query.repositories')}"
id="search-basic-repostories-select" class="chzn-select defaults" id="search-basic-repositories-select" class="chzn-select defaults"
multiple style="width:350px;" tabindex="4"> multiple style="width:350px;" tabindex="4">
<option value="all">${$.i18n.prop('search.artifact.search.form.repositories.all')}</option> <option value="all">${$.i18n.prop('search.artifact.search.form.repositories.all')}</option>
{{each(i,repoId) observableRepoIds}} {{each(i,repoId) observableRepoIds}}