Author: olamy
Date: Wed Jan 15 03:30:08 2014
New Revision: 1558285
URL: http://svn.apache.org/r1558285
Log:
use typeahead only remove jquery autocomplete
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/search.js
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/jquery-ui-1.10.3.custom.min.js
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/search.html
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/search.js
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/search.js?rev=1558285&r1=1558284&r2=1558285&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/search.js
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/search.js
Wed Jan 15 03:30:08 2014
@@ -17,8 +17,8 @@
* under the License.
*/
define("archiva.search",["jquery","jquery.ui","i18n","jquery.tmpl","select2","knockout","knockout.simpleGrid","jqueryFileTree"
- ,"prettify", "d3", "typeahead"]
-,
function(jquery,jqueryui,i18n,jqueryTmpl,select2,ko,koSimpleGrid,jqueryFileTree,prettify,d3,typeahead)
{
+ ,"prettify", "d3", "typeahead","hogan"]
+,
function(jquery,jqueryui,i18n,jqueryTmpl,select2,ko,koSimpleGrid,jqueryFileTree,prettify,d3,typeahead,hogan)
{
//-----------------------------------------
// browse part
@@ -1280,15 +1280,18 @@ define("archiva.search",["jquery","jquer
.tmpl({repositories:data,selected:'',feedsUrl:null}));
}
- mainContent.find("#browse_artifact_detail" ).hide();
+ mainContent.find("#browse_artifact_detail").hide();
mainContent.find("#browse_result").hide();
+ $.log("before slide");
mainContent.find("#main_browse_result_content").hide("slide",
{}, 300,function(){
+ $.log("yup");
mainContent.find("#browse_breadcrumb").html(smallSpinnerImg());
mainContent.find("#browse_artifact").show();
mainContent.find("#browse_artifact").html(mediumSpinnerImg());
mainContent.find("#main_browse_result_content").show();
var
metadataUrl="restServices/archivaServices/browseService/projectVersionMetadata/"+encodeURIComponent(groupId)+"/"+encodeURIComponent(artifactId);
var
versionsListUrl="restServices/archivaServices/browseService/versionsList/"+encodeURIComponent(groupId)+"/"+encodeURIComponent(artifactId);
+ $.log("before getSelectedBrowsingRepository");
var selectedRepo=getSelectedBrowsingRepository();
if (selectedRepo){
metadataUrl+="?repositoryId="+encodeURIComponent(selectedRepo);
@@ -1298,12 +1301,13 @@ define("archiva.search",["jquery","jquer
type: "GET",
dataType: 'json',
success: function(data) {
+ $.log("metadataUrl ok :"+metadataUrl);
artifactDetailViewModel.projectVersionMetadata=mapProjectVersionMetadata(data);
$.ajax(versionsListUrl, {
type: "GET",
dataType: 'json',
success: function(data) {
- artifactDetailViewModel.versions=ko.observableArray(
mapVersionsList(data));
+
artifactDetailViewModel.versions=ko.observableArray(mapVersionsList(data));
ko.applyBindings(artifactDetailViewModel,mainContent.find("#browse_artifact").get(0));
ko.applyBindings(artifactDetailViewModel,mainContent.find("#browse_breadcrumb").get(0));
@@ -1311,7 +1315,8 @@ define("archiva.search",["jquery","jquer
});
}
});
- });
+ }
+ );
}})
});
@@ -1413,6 +1418,7 @@ define("archiva.search",["jquery","jquer
}
enableAutocompleBrowse=function(groupId){
+ $.log("enableAutocompleBrowse");
$("#select_browse_repository" ).select2({width: "resolve"});
// browse-autocomplete
var url="restServices/archivaServices/browseService/rootGroups";
@@ -1424,6 +1430,120 @@ define("archiva.search",["jquery","jquer
url+="?repositoryId="+encodeURIComponent(selectedRepo);
}
+ var browseBox = $("#main-content").find("#browse-autocomplete" );
+
+ browseBox.typeahead(
+ {
+ name: 'browse-result',
+ remote: {
+ url: groupId?url+'/%QUERY':url,
+ beforeSend: function(jqXhr){
+ $.log("beforeSend");
+ },
+ filter: function(parsedResponse){
+ var request = browseBox.val();
+ $.log("filter:"+request);
+
+ if (request.indexOf('.')<0&&!groupId){
+ // it's rootGroups so filtered
+ var result=[];
+ for(var i=0;i<parsedResponse.browseResultEntries.length;i++){
+ if
(parsedResponse.browseResultEntries[i].name.startsWith(request)){
+ result.push(parsedResponse.browseResultEntries[i]);
+ }
+ }
+ return result;
+ }
+ $.log("with dot");
+ var query = "";
+ var dotEnd=request.endsWith(".");
+ // org.apache. request with org.apache
+ // org.apa request with org before last dot and filter response
with startsWith
+ if (request.indexOf(".")>=0){
+ if (dotEnd){
+ query= groupId?groupId+'.'+request.substring(0,
request.length-1):request.substring(0, request.length-1);
+ } else {
+ // substring before last
+
query=groupId?groupId+'.'+request.substringBeforeLast("."):request.substringBeforeLast(".");
+ }
+ } else {
+ query=groupId?groupId:request;
+ }
+ $.log("query:"+query);
+ var
browseUrl="restServices/archivaServices/browseService/browseGroupId/"+encodeURIComponent(query);
+ var selectedRepo=getSelectedBrowsingRepository();
+ if (selectedRepo){
+ browseUrl+="?repositoryId="+encodeURIComponent(selectedRepo);
+ }
+ var result=[];
+ $.ajax({
+ url: browseUrl,
+ async: false,
+ success: function(data) {
+ $.log("ajax get ok");
+ var browseResultEntries = mapBrowseResultEntries(data);
+ $.log("mapBrowseResultEntries done");
+ if (dotEnd){
+ result=browseResultEntries;
+ }
+ var filtered = [];
+ for(var i=0;i<browseResultEntries.length;i++){
+ if (groupId){
+ if
(browseResultEntries[i].name.startsWith(groupId+'.'+request)){
+ filtered.push(browseResultEntries[i]);
+ }
+ } else {
+ if (browseResultEntries[i].name.startsWith(request)){
+ filtered.push(browseResultEntries[i]);
+ }
+ }
+ }
+ result = filtered;
+ }
+ });
+ return result;
+ }
+ },
+ valueKey: 'name',
+ maxParallelRequests:0,
+ limit: 50,
+ template: [
+ '<p>{{name}}</p>'
+ ].join(''),
+ engine: Hogan
+ }
+ );
+
+ browseBox.on('typeahead:selected', function(obj, datum) {
+ $.log(obj);
+ //window.sammyArchivaApplication.setLocation("#quicksearch~" +
datum.artifactId);
+
+ if (datum.project){
+ // value org.apache.maven/maven-archiver
+ // split this org.apache.maven and maven-archiver
+ var id=datum.name;
+ var values = id.split(".");
+ var groupId="";
+ for (var i = 0;i<values.length-1;i++){
+ groupId+=values[i];
+ if (i<values.length-2)groupId+=".";
+ }
+ var artifactId=values[values.length-1];
+ goToArtifactDetail(groupId,artifactId);
+ } else {
+ var selectedRepo=getSelectedBrowsingRepository();
+ var location ="#browse";
+ if (selectedRepo){
+ location+="~"+selectedRepo;
+ }
+ location+="/"+datum.name;
+ window.sammyArchivaApplication.setLocation(location);
+ }
+
+ });
+
+ return;
+
$( "#main-content").find("#browse-autocomplete" ).autocomplete({
minLength: 2,
source: function(request, response){
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/jquery-ui-1.10.3.custom.min.js
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/jquery-ui-1.10.3.custom.min.js?rev=1558285&r1=1558284&r2=1558285&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/jquery-ui-1.10.3.custom.min.js
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/jquery-ui-1.10.3.custom.min.js
Wed Jan 15 03:30:08 2014
@@ -1,7 +1,7 @@
-/*! jQuery UI - v1.10.3 - 2014-01-13
+/*! jQuery UI - v1.10.3 - 2014-01-14
* http://jqueryui.com
-* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js,
jquery.ui.position.js, jquery.ui.draggable.js, jquery.ui.droppable.js,
jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js,
jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js,
jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.menu.js,
jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.spinner.js,
jquery.ui.tabs.js, jquery.ui.tooltip.js
+* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js,
jquery.ui.position.js, jquery.ui.draggable.js, jquery.ui.droppable.js,
jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js,
jquery.ui.datepicker.js, jquery.ui.effect.js, jquery.ui.effect-slide.js
* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
[... 7 lines stripped ...]
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/search.html
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/search.html?rev=1558285&r1=1558284&r2=1558285&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/search.html
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/search.html
Wed Jan 15 03:30:08 2014
@@ -118,7 +118,7 @@
{{if number>0}}
<span class="divider" id="browse-autocomplete-divider">/</span>
{{/if}}
- <input type="text" class="input-large" size="50"
id="browse-autocomplete"/>
+ <input type="text" class="input-large twitter-typeahead" size="50"
id="browse-autocomplete"/>
</li>
</ul>