You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/02/28 01:03:27 UTC
svn commit: r1294405 - in /archiva/trunk/archiva-modules/archiva-web:
archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/
archiva-webapp-js/src/main/webapp/js/archiva/
archiva-webapp-js/src/main/webapp/js/archiva/templates/
Author: olamy
Date: Tue Feb 28 00:03:26 2012
New Revision: 1294405
URL: http://svn.apache.org/viewvc?rev=1294405&view=rev
Log:
fix search query
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java?rev=1294405&r1=1294404&r2=1294405&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java Tue Feb 28 00:03:26 2012
@@ -56,7 +56,7 @@ public interface SearchService
List<Artifact> quickSearch( @QueryParam( "queryString" ) String queryString )
throws ArchivaRestServiceException;
- @Path( "quickSearch" )
+ @Path( "quickSearchWithRepositories" )
@POST
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
@RedbackAuthorization( noPermission = true, noRestriction = true )
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=1294405&r1=1294404&r2=1294405&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 Feb 28 00:03:26 2012
@@ -598,6 +598,9 @@ $(function() {
}
SearchRequest=function(){
+
+ this.queryTerms=ko.observable();
+
//private String groupId;
this.groupId=ko.observable();
@@ -614,7 +617,7 @@ $(function() {
this.className=ko.observable();
//private List<String> repositories = new ArrayList<String>();
- this.repositories=ko.observableArray();
+ this.repositories=ko.observableArray([]);
//private String bundleVersion;
this.bundleVersion=ko.observable();
@@ -635,21 +638,20 @@ $(function() {
this.includePomArtifacts=ko.observable(false);
}
-
- SearchParameters=function(){
- this.basicQueryString=ko.observable();
- this.searchRequest=ko.observable(new SearchRequest());
+ ResultViewModel=function(artifacts){
+ this.artifacts=artifacts;
}
+
SearchViewModel=function(){
- this.searchParameters=ko.observable(new SearchParameters());
+ this.searchRequest=ko.observable(new SearchRequest());
this.observableRepoIds=ko.observableArray([]);
this.selectedRepoIds=[];
basicSearch=function(){
//$.log("query:"+this.searchParameters().basicQueryString());
//$.log("repoIds:"+this.selectedRepoIds);
- var queryTerm=this.searchParameters().basicQueryString();
+ var queryTerm=this.searchRequest().queryTerms();
if (!queryTerm || $.trim(queryTerm).length<1){
$.log("empty");
var errorList=[{
@@ -662,8 +664,28 @@ $(function() {
// cleanup previours error message
customShowError("#main-content #search-basic-form", null, null, []);
}
- $("#main-content #search-results" ).html(mediumSpinnerImg());
- activateSearchResultsTab();
+ var searchResults=$("#main-content #search-results" );
+ searchResults.html(mediumSpinnerImg());
+ this.searchRequest().repositories=this.selectedRepoIds;
+ $.ajax("restServices/archivaServices/searchService/quickSearchWithRepositories",
+ {
+ type: "POST",
+ data: "{\"searchRequest\": " + ko.toJSON(this.searchRequest)+"}",
+ contentType: 'application/json',
+ dataType: 'json',
+ success: function(data) {
+ var resultViewModel=new ResultViewModel(mapArtifacts(data));
+ searchResults.attr("data-bind","template:{name:'search-results-view-tmpl'}");
+ ko.applyBindings(resultViewModel,searchResults.get(0));
+ activateSearchResultsTab();
+ },
+ error: function(data) {
+ var res = $.parseJSON(data.responseText);
+ displayRestError(res);
+ }
+ }
+ );
+
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html?rev=1294405&r1=1294404&r2=1294405&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html Tue Feb 28 00:03:26 2012
@@ -198,7 +198,7 @@
<label class="control-label" for="search-terms"></label>
<div class="controls">
<input type="text" class="input-medium search-query" id="search-terms" name="search-terms" size="50"
- data-bind="value: searchParameters().basicQueryString" placeholder="${$.i18n.prop('search.artifact.search.form.query.terms')}"/>
+ data-bind="value: searchRequest().queryTerms" placeholder="${$.i18n.prop('search.artifact.search.form.query.terms')}"/>
</div>
</div>
<button type="submit" class="btn" data-bind="click: basicSearch">Search</button>
@@ -211,35 +211,35 @@
<label class="control-label" for="groupId">${$.i18n.prop('search.artifact.search.form.query.groupId')}</label>
<div class="controls">
<input type="text" class="input-medium search-query" id="groupId" name="groupId" size="50"
- data-bind="value: searchParameters().searchRequest().groupId"/>
+ data-bind="value: searchRequest().groupId"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="artifactId">${$.i18n.prop('search.artifact.search.form.query.artifactId')}</label>
<div class="controls">
<input type="text" class="input-medium search-query" id="artifactId" name="artifactId" size="50"
- data-bind="value: searchParameters().searchRequest().artifactId"/>
+ data-bind="value: searchRequest().artifactId"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="artifactId">${$.i18n.prop('search.artifact.search.form.query.version')}</label>
<div class="controls">
<input type="text" class="input-medium search-query" id="version" name="version" size="50"
- data-bind="value: searchParameters().searchRequest().version"/>
+ data-bind="value: searchRequest().version"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="artifactId">${$.i18n.prop('search.artifact.search.form.query.packaging')}</label>
<div class="controls">
<input type="text" class="input-medium search-query" id="packaging" name="packaging" size="50"
- data-bind="value: searchParameters().searchRequest().packaging"/>
+ data-bind="value: searchRequest().packaging"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="artifactId">${$.i18n.prop('search.artifact.search.form.query.className')}</label>
<div class="controls">
<input type="text" class="input-medium search-query" id="className" name="className" size="50"
- data-bind="value: searchParameters().searchRequest().className"/>
+ data-bind="value: searchRequest().className"/>
</div>
</div>
</fieldset>
@@ -262,4 +262,12 @@
</div>
</div>
-</script>
\ No newline at end of file
+</script>
+
+<script id="search-results-view-tmpl" type="text/html">
+ {{if artifacts.length==0}}
+ no results
+ {{else}}
+ results
+ {{/if}}
+</script>