I would like to use autocomplete to help users when entering authors in the
submission form. We have presently 100K different authors so the list is
quite big. I have tried a couple of things:
(1) Using the jquery version that comes with DSpace I did this, which
basically tries to autocomplete once the author enters "lastnam,":
$('#aspect_submission_StepTransformer_field_dc_contributor_author1').keyup(function()
{
var input =
$("#aspect_submission_StepTransformer_field_dc_contributor_author").val();
input = $.trim(input);
var size = input.indexOf(",") + 1;
var how_long = input.length;
var all = size + " " + how_long;
if(size == how_long) {
//var newstr = input.replace(/(.*\,).*/, "$1");
var newstr = input;
$("#suggest").html("");
$.ajax({
url: "http://blancoj.dev.deepblue.lib.umich.edu/cgi/authors",
data : "input="+newstr,
success: function(msg) { $("#suggest").html(msg); }
});
}
});
-What I observed was that typing at a normal speed, I could type so fast
that the options never got displayed, and the same thing happened when I
update to a more current version of jquery and tried this code:
$('#aspect_submission_StepTransformer_field_dc_contributor_author').keyup(function()
{
var input =
$("#aspect_submission_StepTransformer_field_dc_contributor_author").val();
var size = input.indexOf(",") + 2;
var how_long = input.length;
var all = size + " " + how_long;
if((size == how_long) && ( size > 1 )) {
var newstr = input;
var result;
var jqxhr = $.ajax({
type: "get",
url: "http://blancoj.dev.deepblue.lib.umich.edu/cgi/authors2",
data : "input="+newstr,
dataType: "xml",
async: false,
success: function(data) { return data; }
}).responseText;
var xml_string = jqxhr;
// Parse the XML string into a XMLDocument
var doc = window.DOMParser
? new DOMParser().parseFromString(xml_string, 'text/xml') //
Standard
: new ActiveXObject('Microsoft.XMLDOM').loadXML(xml_string); // IE
// Find the answer nodes
var answers_nodes = doc.getElementsByTagName('data');
var answers = [];
// Loop through them and save their text content into an array
for (var i = 0; i < answers_nodes.length; i++) {
answers.push(answers_nodes[i].firstChild.data)
}
answers.push("")
$( "#aspect_submission_StepTransformer_field_dc_contributor_author"
).autocomplete({
source: answers
});
}
});
Any insight into this?
Thank you!
Jose
------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
DSpace-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-tech
List Etiquette: https://wiki.duraspace.org/display/DSPACE/Mailing+List+Etiquette