1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
define(['view/completer', 'textanalysis', 'rz_core', 'view/selection'],
function( completer, textanalysis, rz_core, selection)
{
var search,
search_completer;
var focus = function() {
search.focus();
}
function init() {
search = $('#search');
search_completer = completer(search, $('#search-suggestion'),
{
triggerStart:' |',
triggerEnd:' |',
matchStartOfString: true,
});
search_completer.options.plug(textanalysis.suggestions_options.map('.nodes'));
search.on('input', search_on_submit);
search.on('keydown', function(e) {
if (e.which == 13 && !search_completer.handleEnter()) {
e.preventDefault();
search_on_submit(e);
return false;
}
return true;
});
function attribute_match(obj, regexp) {
var v, k;
for (k in obj) {
if (obj.hasOwnProperty(k)) {
v = obj[k];
if ("string" === typeof(v) && v.match(regexp)) {
return true;
}
}
}
return false;
}
function search_on_submit() {
var text = search[0].value.trim(),
r,
selector = function (obj) { return attribute_match(obj, r); };
try {
r = new RegExp(text.replace(/ /, '|'), 'i');
} catch (e) {
return; // don't clear selection either
}
if (text.length > 0) {
selection.byVisitors(selector, selector);
} else {
selection.clear();
}
rz_core.update_view__graph(false);
};
}
return {
focus: focus,
init: init,
};
}
);
|