X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e1491e3edb997dc6683acd1ebf1c1a95d09d4298..9f5256256f4b29188aa441f2e506297d27e200ce:/apps/workbench/app/assets/javascripts/to_tsquery.js?ds=sidebyside diff --git a/apps/workbench/app/assets/javascripts/to_tsquery.js b/apps/workbench/app/assets/javascripts/to_tsquery.js index f2e34d9e08..dbb17f3f73 100644 --- a/apps/workbench/app/assets/javascripts/to_tsquery.js +++ b/apps/workbench/app/assets/javascripts/to_tsquery.js @@ -24,3 +24,23 @@ window.to_tsquery = function(q) { return null return q + ':*' } + +// to_tsquery_filters() converts a user-entered search query to a list of +// filters using the newly added (as for arvados 1.5) trigram indexes. +// +// Examples: +// +// "foo" => [["any", "ilike", "%foo%"]] +// "foo.bar" => [["any", "ilike", "%foo.bar%"]] +// "foo bar" => [["any", "ilike", "%foo%"], ["any", "ilike", "%bar%"]] +// "foo|bar" => [["any", "ilike", "%foo%"], ["any", "ilike", "%bar%"]] +// "" => [] +// null => [] +window.to_tsquery_filters = function(q) { + q = (q || '').replace(/[^-\w\.\/]+/g, ' ').trim() + if (q == '') + return [] + return q.split(" ").map(function(term) { + return ["any", "ilike", "%"+term+"%"] + }) +} \ No newline at end of file