annotate file-bug.js @ 17:4a698ea4be60

Added a really simple bug filing page w/ autocomplete for product/component.
author Atul Varma <varmaa@toolness.com>
date Wed, 10 Mar 2010 12:39:14 -0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1 $(window).ready(
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2 function() {
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3 const EM_DASH = "\u2014";
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
5 var cache = buildCache("#form-cache .data");
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
6 var config = cache.get("configuration");
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
7 var categories;
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
8 var queuedRespond;
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
9
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
10 function buildCategories() {
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
11 categories = [];
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
12 for (product in config.product)
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
13 for (component in config.product[product].component)
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
14 categories.push(product + EM_DASH + component);
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
15 }
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
16
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
17 var categoryOptions = {
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
18 source: function(request, response) {
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
19 function respond() {
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
20 queuedRespond = null;
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
21
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
22 var suggs = [];
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
23 var terms = request.term.split(" ");
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
24
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
25 if (!categories)
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
26 buildCategories();
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
27
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
28 categories.forEach(
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
29 function(category) {
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
30 for (var i = 0; i < terms.length; i++)
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
31 if (!category.match(terms[i], "i"))
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
32 return;
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
33 suggs.push(category);
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
34 });
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
35
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
36 response(suggs);
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
37 };
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
38
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
39 if (!config)
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
40 queuedRespond = respond;
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
41 else
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
42 respond();
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
43 }
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
44 };
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
45
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
46 $("input#category").autocomplete(categoryOptions);
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
47 $("#file-bug").submit(
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
48 function(event) {
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
49 event.preventDefault();
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
50 var parts = $("input#category").val().split(EM_DASH);
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
51 window.open(Bugzilla.BASE_UI_URL + "/enter_bug.cgi?" +
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
52 "product=" + encodeURI(parts[0]) + "&" +
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
53 "component=" + encodeURI(parts[1]));
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
54 });
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
55
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
56 Bugzilla.ajax({url: "/configuration",
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
57 success: function(result) {
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
58 config = result;
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
59 cache.set("configuration", result);
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
60 if (queuedRespond)
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
61 queuedRespond();
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
62 }});
4a698ea4be60 Added a really simple bug filing page w/ autocomplete for product/component.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
63 });