2 <script type="text/javascript" language="JavaScript">
3 var filterform_displayed = false;
4 function filter_click()
6 form = document.getElementById('filterform');
11 if (filterform_displayed) {
12 form.style['display'] = 'none';
13 filterform_displayed = false;
15 form.style['display'] = 'block';
16 filterform_displayed = true;
21 function enable_selected_submitter(select, input)
23 select.name = 'submitter';
26 function filter_form_submit(form)
30 submitter_select = document.getElementById("submitter_select");
31 submitter_input = document.getElementById("submitter_input");
32 if (!submitter_select || !submitter_input) {
37 /* submitter handling. if possible, use the select box, otherwise leave
38 * as-is (and so the text box is used). */
40 if (submitter_select.options.length == 0) {
41 /* if there's no match, just use the input */
43 } else if (submitter_select.options.length == 1) {
44 /* if there's only one match, request by id */
45 submitter_select.selectedIndex = 0;
46 enable_selected_submitter(submitter_select, submitter_input);
48 } else if (submitter_select.selectedIndex != -1) {
49 /* if the user has explicitly selected, request by id */
50 enable_selected_submitter(submitter_select, submitter_input);
54 for (i = 0; i < form.elements.length; i++) {
55 var e = form.elements[i];
56 if (e.type == 'submit') {
60 /* handle submitter data */
61 if (e.type == 'select-one') {
65 if (e.selectedIndex != -1
66 && e.options[e.selectedIndex].value == '') {
81 function submitter_complete_response()
83 if (req.readyState != 4) {
88 eval("completions = " + req.responseText);
90 if (completions.length == 0) {
95 submitter_select = document.getElementById("submitter_select");
96 submitter_input = document.getElementById("submitter_input");
97 if (!submitter_select || !submitter_input) {
102 submitter_select.options = [];
104 for (i = 0; i < completions.length; i++) {
105 name = completions[i]['fields']['name'];
107 name = completions[i]['fields']['name'] +
108 ' <' + completions[i]['fields']['email'] + '>';
110 name = completions[i]['fields']['email'];
112 o = new Option(name, completions[i]['pk']);
113 submitter_select.options[i] = o;
115 submitter_select.disabled = false;
119 function submitter_field_change(field)
121 var value = field.value;
122 if (value.length < 4) {
130 var url = '{% url patchwork.views.submitter_complete %}?q=' + value;
131 req = new XMLHttpRequest();
132 req.onreadystatechange = submitter_complete_response;
133 req.open("GET", url, true);
138 <div class="filters">
139 <div id="filtersummary">
140 <strong><a href="javascript:filter_click()">Filters</a>:</strong>
141 {% if filters.applied_filters %}
142 {% for filter in filters.applied_filters %}
143 {{ filter.name }} = {{ filter.condition }}
144 {% if not filter.forced %}
145 <a href="{{ filter.url_without_me }}"><img
146 src="/images/filter-remove.png"></a>
148 {% if not forloop.last %} | {% endif %}
152 <a href="javascript:filter_click()"><img src="/images/filter-add.png"></a>
155 <div id="filterform" style="padding-top: 1em; display: none">
156 <form action="" method="get" onSubmit="return filter_form_submit(this)">
158 {% for filter in filters.available_filters %}
160 <td>{{ filter.name }}</td>
161 <td>{{ filter.form }}</td>
166 <td><input type="submit" value="Apply"/></td>