aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Lamy <olamy@apache.org>2012-03-05 08:45:33 +0000
committerOlivier Lamy <olamy@apache.org>2012-03-05 08:45:33 +0000
commitc21bb53a98f8eb397f5acbc0865707bc641741b5 (patch)
tree520ac78c73fea1b9d05fdf8bb5b47b1e44dcc796
parent0a8d820602de9d9f9003877cd3b5f6d98416b8e2 (diff)
downloadarchiva-c21bb53a98f8eb397f5acbc0865707bc641741b5.tar.gz
archiva-c21bb53a98f8eb397f5acbc0865707bc641741b5.zip
autocomplete in browse is now from the current groupId
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1296966 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--archiva-modules/archiva-web/archiva-webapp-js/pom.xml4
-rw-r--r--archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js59
-rw-r--r--archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html8
3 files changed, 49 insertions, 22 deletions
diff --git a/archiva-modules/archiva-web/archiva-webapp-js/pom.xml b/archiva-modules/archiva-web/archiva-webapp-js/pom.xml
index 8d0f2ec06..6a187e35e 100644
--- a/archiva-modules/archiva-web/archiva-webapp-js/pom.xml
+++ b/archiva-modules/archiva-web/archiva-webapp-js/pom.xml
@@ -767,7 +767,9 @@
<configuration>
<tasks>
<copy overwrite="true" file="${basedir}/src/test/tomcat/auto-admin-creation.properties"
- todir="${basedir}/target/"/>
+ todir="${project.build.directory}/target/"/>
+ <copy overwrite="true" file="${basedir}/src/test/tomcat/log4j.xml"
+ todir="${project.build.outputDirectory}"/>
</tasks>
</configuration>
</execution>
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 130b05ffb..17e7057a7 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
@@ -100,6 +100,7 @@ $(function() {
var browseViewModel = new BrowseViewModel(browseResultEntries,parentBrowseViewModel,groupId);
ko.applyBindings(browseViewModel,browseBreadCrumb.get(0));
ko.applyBindings(browseViewModel,browseResult.get(0));
+ enableAutocompleBrowse(groupId);
}
});
}
@@ -178,26 +179,40 @@ $(function() {
var browseViewModel = new BrowseViewModel(browseResultEntries,null,null);
ko.applyBindings(browseViewModel,mainContent.find("#browse_breadcrumb").get(0));
ko.applyBindings(browseViewModel,mainContent.find("#browse_result").get(0));
+ enableAutocompleBrowse();
}
});
- enableAutocompleBrowse();
+
}
- enableAutocompleBrowse=function(){
+ enableAutocompleBrowse=function(groupId){
// browse-autocomplete
+ var url="restServices/archivaServices/browseService/rootGroups";
+ if (groupId){
+ url="restServices/archivaServices/browseService/browseGroupId/"+encodeURIComponent(groupId);
+ }
$( "#main-content #browse-autocomplete" ).autocomplete({
- minLength: 3,
+ minLength: 2,
source: function(request, response){
var query = "";
- if (request.term.indexOf('.')<0){
+ if (request.term.indexOf('.')<0&&!groupId){
// try with rootGroups then filtered
- $.get("restServices/archivaServices/browseService/rootGroups",
+ $.get(url,
function(data) {
var browseResultEntries = mapbrowseResultEntries(data);
+
var filetered = [];
for(var i=0;i<browseResultEntries.length;i++){
if (browseResultEntries[i].name.startsWith(request.term)){
- filetered.push(browseResultEntries[i]);
+ if (groupId){
+ $.log("groupId:"+groupId+",browseResultEntry.name:"+browseResultEntries[i].name);
+ if (browseResultEntries[i].name.startsWith(groupId)) {
+ filetered.push(browseResultEntries[i]);
+ }
+
+ } else {
+ filetered.push(browseResultEntries[i]);
+ }
}
}
response(filetered);
@@ -209,16 +224,16 @@ $(function() {
var dotEnd=request.term.endsWith(".");
// org.apache. requets with org.apache
// org.apa request with org before last dot and filter response with startsWith
- if (request.term.indexOf(".")>=0){
- if (dotEnd){
- query= request.term.substring(0, request.term.length-1);
+ if (request.term.indexOf(".")>=0){
+ if (dotEnd){
+ query= groupId?groupId+'.'+request.term.substring(0, request.term.length-1):request.term.substring(0, request.term.length-1);
+ } else {
+ // substring before last
+ query=groupId?groupId+'.'+request.term.substringBeforeLast("."):request.term.substringBeforeLast(".");
+ }
} else {
- // substring before last
- query=request.term.substringBeforeLast(".");
+ query=groupId?groupId:request.term;
}
- } else {
- query=request.term;
- }
$.get("restServices/archivaServices/browseService/browseGroupId/"+encodeURIComponent(query),
function(data) {
var browseResultEntries = mapbrowseResultEntries(data);
@@ -227,8 +242,14 @@ $(function() {
} else {
var filetered = [];
for(var i=0;i<browseResultEntries.length;i++){
- if (browseResultEntries[i].name.startsWith(request.term)){
- filetered.push(browseResultEntries[i]);
+ if (groupId){
+ if (browseResultEntries[i].name.startsWith(groupId+'.'+request.term)){
+ filetered.push(browseResultEntries[i]);
+ }
+ } else {
+ if (browseResultEntries[i].name.startsWith(request.term)){
+ filetered.push(browseResultEntries[i]);
+ }
}
}
response(filetered);
@@ -258,13 +279,13 @@ $(function() {
}).data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
- .append( "<a>" + item.name + "</a>" )
+ .append( groupId ? "<a>" + item.name.substring(groupId.length+1, item.name.length) + "</a>": "<a>" + item.name + "</a>" )
.appendTo( ul );
};
}
/**
- * called if browser url contains queryParam browse=groupId
+ *
* @param groupId
*/
displayBrowseGroupIdFromAutoComplete=function(groupId){
@@ -274,7 +295,6 @@ $(function() {
mainContent.find("#browse_result").html(mediumSpinnerImg());
var parentBrowseViewModel=new BrowseViewModel(null,null,null);
displayGroupDetail(groupId,parentBrowseViewModel,null);
- enableAutocompleBrowse();
}
/**
@@ -289,7 +309,6 @@ $(function() {
mainContent.find("#browse_result").html(mediumSpinnerImg());
var parentBrowseViewModel=new BrowseViewModel(null,null,null);
displayGroupDetail(groupId,parentBrowseViewModel,null);
- enableAutocompleBrowse();
}
diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html
index c55651366..3ca8e4711 100644
--- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html
+++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html
@@ -24,7 +24,6 @@
</div>
</div>
<div id="main_browse_result">
- <input type="text" class="form-search span6" size="50" id="browse-autocomplete"/>
<div id="main_browse_result_content" class="well">
<div id="browse_breadcrumb" data-bind='template:{name:"browse-breadcrumb-tmpl"}'></div>
<div id="browse_result" class="well" data-bind='template:{name:"browse-groups-tmpl"}'></div>
@@ -82,7 +81,14 @@
{{/if}}
</li>
{{/each}}
+ <li>
+ {{if number>0}}
+ <span class="divider">/</span>
+ {{/if}}
+ <input type="text" class="form-search span6" size="50" id="browse-autocomplete"/>
+ </li>
</ul>
+
</script>
<script id="browse-artifact-tmpl" type="text/html">