Revision 4290
Added by ben leinfelder over 16 years ago
search.js | ||
---|---|---|
32 | 32 |
questionIds[0] = questionId; |
33 | 33 |
|
34 | 34 |
var documentObjects = new Array(); |
35 |
|
|
35 |
var index = 0; |
|
36 | 36 |
if (submitFormObj.docids.length > 1) { |
37 | 37 |
for (var i=0; i < submitFormObj.docids.length; i++) { |
38 |
var documentObject = new Object(); |
|
39 |
documentObject.docid = submitFormObj.docids[i].value; |
|
40 |
documentObject.questionIds = questionIds; |
|
41 |
documentObjects[i] = documentObject; |
|
38 |
if (submitFormObj.docids[i].checked) { |
|
39 |
var documentObject = new Object(); |
|
40 |
documentObject.docid = submitFormObj.docids[i].value; |
|
41 |
|
|
42 |
for (var z = 0; z < submitFormObj[documentObject.docid].length; z++) { |
|
43 |
questionIds[z] = submitFormObj[documentObject.docid][z].value; |
|
44 |
} |
|
45 |
|
|
46 |
documentObject.questionIds = questionIds; |
|
47 |
documentObjects[index] = documentObject; |
|
48 |
index++; |
|
49 |
} |
|
42 | 50 |
} |
43 | 51 |
} |
44 | 52 |
else { |
45 |
var documentObject = new Object(); |
|
46 |
documentObject.docid = submitFormObj.docids.value; |
|
47 |
for (var z = 0; z < submitFormObj[documentObject.docid].length; z++) { |
|
48 |
questionIds[z] = submitFormObj[documentObject.docid][z].value; |
|
53 |
if (submitFormObj.docids.checked) { |
|
54 |
var documentObject = new Object(); |
|
55 |
documentObject.docid = submitFormObj.docids.value; |
|
56 |
|
|
57 |
for (var z = 0; z < submitFormObj[documentObject.docid].length; z++) { |
|
58 |
questionIds[z] = submitFormObj[documentObject.docid][z].value; |
|
59 |
} |
|
60 |
|
|
61 |
documentObject.questionIds = questionIds; |
|
62 |
documentObjects[0] = documentObject; |
|
49 | 63 |
} |
50 |
documentObject.questionIds = questionIds; |
|
51 |
documentObjects[0] = documentObject; |
|
52 | 64 |
} |
53 | 65 |
|
54 | 66 |
var query = generateQuery(documentObjects, metadataObjs); |
... | ... | |
258 | 270 |
alert(tempQuery); |
259 | 271 |
|
260 | 272 |
return tempQuery; |
273 |
} |
|
274 |
|
|
275 |
function generateSearchString(searchString, searchAssessments, searchAssessmentItems) { |
|
276 |
var queryString = |
|
277 |
"<pathquery version=\"1.2\">" |
|
278 |
+"<querytitle>Web-Search</querytitle>"; |
|
279 |
|
|
280 |
/** assessments **/ |
|
281 |
if (searchAssessments) { |
|
282 |
|
|
283 |
queryString += |
|
284 |
"<returndoctype>edml://ecoinformatics.org/edml</returndoctype>" |
|
285 |
|
|
286 |
//assessment fields |
|
287 |
+"<returnfield>assessment/duration</returnfield>" |
|
288 |
+"<returnfield>assessment/@title</returnfield>" |
|
289 |
+"<returnfield>assessment/@id</returnfield>" |
|
290 |
+"<returnfield>lom/general/title/string</returnfield>" |
|
291 |
+"<returnfield>lom/general/keyword/string</returnfield>" |
|
292 |
+"<returnfield>individualName/surName</returnfield>" |
|
293 |
+"<returnfield>organizationName</returnfield>" |
|
294 |
|
|
295 |
+"<returnfield>assessmentItems/assessmentItem/assessmentItemId</returnfield>"; |
|
296 |
|
|
297 |
} |
|
298 |
|
|
299 |
/** questions **/ |
|
300 |
if (searchAssessmentItems) { |
|
301 |
queryString += |
|
302 |
"<returndoctype>http://www.imsglobal.org/xsd/ims_qtiasiv1p2</returndoctype>" |
|
303 |
|
|
304 |
//question (qti) fields |
|
305 |
+"<returnfield>item/@title</returnfield>" |
|
306 |
+"<returnfield>item/@ident</returnfield>" |
|
307 |
+"<returnfield>qtimetadata/qtimetadatafield/fieldlabel</returnfield>" |
|
308 |
+"<returnfield>qtimetadata/qtimetadatafield/fieldentry</returnfield>" |
|
309 |
//classification |
|
310 |
+"<returnfield>fieldlabel</returnfield>" |
|
311 |
+"<returnfield>fieldentry</returnfield>" |
|
312 |
+"<returnfield>objectives/material/mattext</returnfield>" |
|
313 |
//question content |
|
314 |
+"<returnfield>presentation/flow/material/mattext</returnfield>" |
|
315 |
+"<returnfield>response_label/@ident</returnfield>" |
|
316 |
+"<returnfield>response_label/material/mattext</returnfield>"; |
|
317 |
} |
|
318 |
|
|
319 |
queryString += |
|
320 |
"<querygroup operator=\"UNION\">" |
|
321 |
+"<queryterm searchmode=\"contains\" casesensitive=\"false\">" |
|
322 |
+"<value>" + searchString + "</value>" |
|
323 |
+"</queryterm>" |
|
324 |
+"</querygroup>" |
|
325 |
+"</pathquery>"; |
|
326 |
|
|
327 |
return queryString; |
|
328 |
|
|
329 |
} |
|
330 |
|
|
331 |
|
|
332 |
function generateAssessmentSearchString(assessmentItemId) { |
|
333 |
var query = |
|
334 |
"<pathquery version='1.2'>" |
|
335 |
+"<querytitle>Containing-Assessment-Search</querytitle>" |
|
336 |
|
|
337 |
+"<returndoctype>edml://ecoinformatics.org/edml</returndoctype>" |
|
338 |
|
|
339 |
+"<returnfield>assessment/@title</returnfield>" |
|
340 |
+"<returnfield>assessment/@id</returnfield>" |
|
341 |
+"<returnfield>assessment/duration</returnfield>" |
|
342 |
+"<returnfield>lom/general/title/string</returnfield>" |
|
343 |
+"<returnfield>lom/general/keyword/string</returnfield>" |
|
344 |
+"<returnfield>individualName/surName</returnfield>" |
|
345 |
+"<returnfield>organizationName</returnfield>" |
|
346 |
|
|
347 |
+"<returnfield>assessmentItems/assessmentItem/assessmentItemId</returnfield>"; |
|
348 |
|
|
349 |
if (assessmentItemId.length > 0) { |
|
350 |
query += "<querygroup operator='UNION'>"; |
|
351 |
|
|
352 |
//add the assessmentId if included |
|
353 |
query += |
|
354 |
"<queryterm searchmode='contains' casesensitive='false'>" |
|
355 |
+"<value>" |
|
356 |
+ assessmentItemId |
|
357 |
+"</value>" |
|
358 |
+"<pathexpr>assessmentItemId</pathexpr>" |
|
359 |
+"</queryterm>"; |
|
360 |
|
|
361 |
//close the query group |
|
362 |
query += |
|
363 |
"</querygroup>"; |
|
364 |
} |
|
365 |
|
|
366 |
query += "</pathquery>"; |
|
367 |
|
|
368 |
return query; |
|
369 |
} |
|
370 |
|
|
371 |
function callAjax(metacatURL, myQuery, qfmt) { |
|
372 |
|
|
373 |
//alert("calling ajax: " + metacatURL); |
|
374 |
//alert("myQuery: " + myQuery); |
|
375 |
|
|
376 |
//var myRequest = new Ajax.Request( |
|
377 |
var myUpdate = new Ajax.Updater( |
|
378 |
'ajaxResults', |
|
379 |
metacatURL, |
|
380 |
{ method: 'post', |
|
381 |
parameters: { action: 'squery', qformat: qfmt, query: myQuery}, |
|
382 |
evalScripts: true, |
|
383 |
//onSuccess: function(transport) {alert('success: ' + transport.status);}, |
|
384 |
onFailure: function(transport) {alert('failure making ajax call');} |
|
385 |
}); |
|
386 |
|
|
387 |
//alert("done calling ajax"); |
|
261 | 388 |
} |
Also available in: Unified diff
refactor search methods into common search.js file.
start on making ajax-based search from the index page.
state of things: now merging across assessments and including question-level metadata