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/29 19:51:24 UTC
svn commit: r1295209 - in /archiva/trunk/archiva-modules/archiva-web:
archiva-webapp-js/src/main/webapp/js/archiva/search.js
archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html
archiva-webapp-js/src/main/webapp/js/archiva/utils.js pom.xml
Author: olamy
Date: Wed Feb 29 18:51:23 2012
New Revision: 1295209
URL: http://svn.apache.org/viewvc?rev=1295209&view=rev
Log:
add autocomplete to apply filtering on search results
Modified:
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
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
archiva/trunk/archiva-modules/archiva-web/pom.xml
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=1295209&r1=1295208&r2=1295209&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 Wed Feb 29 18:51:23 2012
@@ -703,6 +703,7 @@ $(function() {
var searchResultsGrid=mainContent.find("#search-results #search-results-grid" );
mainContent.find("#btn-basic-search" ).button("loading");
+ mainContent.find("#btn-advanced-search" ).button("loading");
$("#user-messages").html(mediumSpinnerImg());
@@ -733,8 +734,50 @@ $(function() {
"simpleGrid: gridViewModel,simpleGridTemplate:'search-results-view-grid-tmpl',pageLinksId:'search-results-view-grid-pagination'");
ko.applyBindings(self.resultViewModel,searchResultsGrid.get(0));
}
+ // FIXME something generic here !
+
+ $( "#main-content #search-filter-auto-groupId" ).autocomplete({
+ minLength: 1,
+ source: function(request, response){
+ var groupIds=[];
+ $(self.resultViewModel.artifacts()).each(function(idx,artifact){
+ if(artifact.groupId.startsWith(request.term)){
+ groupIds.push(artifact.groupId);
+ }
+ });
+ response(unifyArray(groupIds,true));
+ }
+ });
+
+ $( "#main-content #search-filter-auto-artifactId" ).autocomplete({
+ minLength: 1,
+ source: function(request, response){
+ var artifactIds=[];
+ $(self.resultViewModel.artifacts()).each(function(idx,artifact){
+ if(artifact.artifactId.startsWith(request.term)){
+ artifactIds.push(artifact.artifactId);
+ }
+ });
+ response(unifyArray(artifactIds,true));
+ }
+ });
+
+ $( "#main-content #search-filter-auto-version" ).autocomplete({
+ minLength: 1,
+ source: function(request, response){
+ var versions=[];
+ $(self.resultViewModel.artifacts()).each(function(idx,artifact){
+ if(artifact.version.startsWith(request.term)){
+ versions.push(artifact.version);
+ }
+ });
+ response(unifyArray(versions,true));
+ }
+ });
+
+
+
activateSearchResultsTab();
- mainContent.find("#btn-advanced-search-filter" ).show();
}
},
error: function(data) {
@@ -742,13 +785,15 @@ $(function() {
displayRestError(res);
},
complete:function() {
- $("#main-content #btn-basic-search" ).button("reset");
+ mainContent.find("##btn-basic-search" ).button("reset");
+ mainContent.find("#btn-advanced-search" ).button("reset");
removeMediumSpinnerImg("#user-messages");
}
}
);
}
+ // olamy not used as we cannot filter on className etc...
filterResults=function(){
var filtered=[];
for (var i=0;i<self.resultViewModel.artifacts().length;i++){
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=1295209&r1=1295208&r2=1295209&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 Wed Feb 29 18:51:23 2012
@@ -256,9 +256,6 @@
<button type="submit" id="btn-advanced-search" class="btn btn-primary"
data-bind="click: advancedSearch">${$.i18n.prop('search.artifact.search.form.btn.search')}</button>
- <button type="submit" id="btn-advanced-search-filter" class="btn btn-success hide"
- data-bind="click: filterResults">${$.i18n.prop('search.artifact.search.form.btn.search.filter')}</button>
-
</form>
</div>
<div class="pill-pane" id="search-osgi-form-pane">
@@ -290,7 +287,9 @@
</tr>
<tr>
{{each(i, columnDefinition) columns}}
- <th title="${ columnDefinition.title }" id="search-filter-auto-${ columnDefinition.id }"><input type="text" place-holder="filter"/></th>
+ <th title="${ columnDefinition.title }">
+ <input type="text" class="form-search" id="search-filter-auto-${ columnDefinition.id }" place-holder="filtering"/>
+ </th>
{{/each}}
</tr>
</thead>
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js?rev=1295209&r1=1295208&r2=1295209&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js Wed Feb 29 18:51:23 2012
@@ -329,6 +329,21 @@ mapStringList=function(data){
return [];
}
+/**
+ * return an array with removing duplicate strings
+ * @param strArray an array of string
+ * @param sorted to sort or not
+ */
+unifyArray=function(strArray,sorted){
+ var res = [];
+ $(strArray).each(function(idx,str){
+ if ( $.inArray(str,res)<0){
+ res.push(str);
+ }
+ });
+ return sorted?res.sort():res;
+}
+
// utils
String.prototype.endsWith = function(str) {
return (this.match(str+"$")==str)
Modified: archiva/trunk/archiva-modules/archiva-web/pom.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/pom.xml?rev=1295209&r1=1295208&r2=1295209&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/pom.xml (original)
+++ archiva/trunk/archiva-modules/archiva-web/pom.xml Wed Feb 29 18:51:23 2012
@@ -133,4 +133,5 @@
</modules>
</profile>
</profiles>
+
</project>