forked from ietf-tools/datatracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdoc-search.js
More file actions
79 lines (68 loc) · 2.41 KB
/
doc-search.js
File metadata and controls
79 lines (68 loc) · 2.41 KB
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
73
74
75
76
77
78
79
$(document)
.ready(function () {
// search form
var form = $("#search_form");
function anyAdvancedActive() {
var advanced = false;
var by = form.find("input[name=by]:checked");
if (by.length > 0) {
by.closest(".search_field")
.find("input,select")
.not("input[name=by]")
.each(function () {
if (String.prototype.trim(this.value)) {
advanced = true;
}
});
}
var additional_doctypes = form.find("input.advdoctype:checked");
if (additional_doctypes.length > 0) {
advanced = true;
}
return advanced;
}
function toggleSubmit() {
var nameSearch = $("#id_name")
.val()
.trim();
form.find("button[type=submit]")
.get(0)
.disabled = !nameSearch && !anyAdvancedActive();
}
function updateAdvanced() {
form.find("input[name=by]:checked")
.closest(".search_field")
.find("input,select")
.not("input[name=by]")
.each(function () {
this.disabled = false;
this.focus();
});
form.find("input[name=by]")
.not(":checked")
.closest(".search_field")
.find("input,select")
.not("input[name=by]")
.each(function () {
this.disabled = true;
});
toggleSubmit();
}
if (form.length > 0) {
form.find(".search_field input[name=by]")
.closest(".search_field")
.find("label,input")
.on("click", updateAdvanced);
form.find(".search_field input,select")
.on("change click keyup", toggleSubmit);
form.find(".toggle_advanced")
.on("click", function () {
var advanced = $(this)
.next();
advanced.find('.search_field input[type="radio"]')
.attr("checked", false);
updateAdvanced();
});
updateAdvanced();
}
});