From: Alexandre Terrasa Date: Sun, 21 Jul 2013 05:22:52 +0000 (-0400) Subject: ni_nitdoc: fixed broken search with special caracters in JS X-Git-Tag: v0.6.1~73^2~5^2~40 X-Git-Url: http://nitlanguage.org ni_nitdoc: fixed broken search with special caracters in JS Signed-off-by: Alexandre Terrasa --- diff --git a/share/nitdoc/scripts/js-facilities.js b/share/nitdoc/scripts/js-facilities.js index b0e928f..31553f5 100644 --- a/share/nitdoc/scripts/js-facilities.js +++ b/share/nitdoc/scripts/js-facilities.js @@ -198,14 +198,17 @@ $(document).ready(function() { // Escape regexp related characters in query var query = $("#search").val(); + query = query.replace(/\\/gi, "\\\\"); query = query.replace(/\[/gi, "\\["); query = query.replace(/\|/gi, "\\|"); query = query.replace(/\*/gi, "\\*"); query = query.replace(/\+/gi, "\\+"); - query = query.replace(/\\/gi, "\\\\"); query = query.replace(/\?/gi, "\\?"); query = query.replace(/\(/gi, "\\("); query = query.replace(/\)/gi, "\\)"); + query = query.replace(/&/gi, "&&"); + query = query.replace(/>/gi, ">"); + query = query.replace(/ 10) { break; diff --git a/src/ni_nitdoc.nit b/src/ni_nitdoc.nit index ee20484..f502981 100644 --- a/src/ni_nitdoc.nit +++ b/src/ni_nitdoc.nit @@ -154,11 +154,16 @@ class Nitdoc content.append("\{txt: \"{mclass.name}\", url:\"{mclass.url}\" \},") content.append("],") end + var name2mprops = new HashMap[String, Set[MPropDef]] for mproperty in model.mproperties do if mproperty.visibility <= none_visibility then continue if mproperty isa MAttribute then continue - content.append("\"{mproperty.name}\": [") - for mpropdef in mproperty.mpropdefs do + if not name2mprops.has_key(mproperty.name) then name2mprops[mproperty.name] = new HashSet[MPropDef] + name2mprops[mproperty.name].add_all(mproperty.mpropdefs) + end + for mproperty, mpropdefs in name2mprops do + content.append("\"{mproperty}\": [") + for mpropdef in mpropdefs do content.append("\{txt: \"{mpropdef.full_name}\", url:\"{mpropdef.url}\" \},") end content.append("],")