Mercurial > bugzilla-dashboard
annotate js/modules/app.js @ 55:cd51aebfbf68
Removed extraneous logging
author | Atul Varma <avarma@mozilla.com> |
---|---|
date | Sat, 24 Apr 2010 23:50:23 -0700 |
parents | 1199b970c68b |
children | 4728c2db6fd6 |
rev | line source |
---|---|
41 | 1 Require.modules["app/login"] = function(exports) { |
2 var callbacks = []; | |
3 var username; | |
4 var password; | |
5 | |
6 exports.whenChanged = function whenChanged(cb) { | |
7 callbacks.push(cb); | |
8 }; | |
9 | |
53
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
10 exports.get = function get() { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
11 var isLoggedIn = (username && username != ""); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
12 var isAuthenticated = (isLoggedIn && password && password != ""); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
13 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
14 return { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
15 username: username, |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
16 password: password, |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
17 isLoggedIn: isLoggedIn, |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
18 isAuthenticated: isAuthenticated |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
19 }; |
41 | 20 }; |
21 | |
22 exports.set = function set(newUsername, newPassword) { | |
23 if (newUsername == username && newPassword == password) | |
24 return; | |
25 | |
26 username = newUsername; | |
27 password = newPassword; | |
28 | |
53
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
29 var info = exports.get(); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
30 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
31 callbacks.forEach(function(cb) { cb(info); }); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
32 }; |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
33 }; |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
34 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
35 Require.modules["app/ui/login-form"] = function(exports, require) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
36 var $ = require("jQuery"); |
41 | 37 |
53
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
38 $("#login form").submit( |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
39 function(event) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
40 event.preventDefault(); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
41 require("app/login").set($("#login .username").val(), |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
42 $("#login .password").val()); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
43 $("#login").fadeOut(); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
44 }); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
45 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
46 require("app/login").whenChanged( |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
47 function maybeChangeUsernameField(user) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
48 var usernameField = $("#login .username"); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
49 if (user.isLoggedIn && usernameField.val() != user.username) |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
50 usernameField.val(user.username); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
51 }); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
52 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
53 require("app/ui").whenStarted( |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
54 function maybeShowLoginForm() { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
55 if (!require("app/login").get().isLoggedIn) |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
56 $("#login").fadeIn(); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
57 }); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
58 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
59 exports.init = function init() { |
41 | 60 }; |
61 }; | |
43
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
62 |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
63 Require.modules["app/ui"] = function(exports, require) { |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
64 var $ = require("jQuery"); |
53
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
65 var startupCallbacks = []; |
43
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
66 |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
67 require("app/login").whenChanged( |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
68 function changeUI(user) { |
54
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
69 var show = { |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
70 "no-login": false, |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
71 "login": false, |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
72 "auth-login": false, |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
73 "no-auth": false |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
74 }; |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
75 |
43
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
76 if (user.isLoggedIn) { |
54
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
77 show["login"] = true; |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
78 if (user.isAuthenticated) |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
79 show["auth-login"] = true; |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
80 else |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
81 show["no-auth"] = true; |
43
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
82 } else { |
54
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
83 show["no-login"] = true; |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
84 show["no-auth"] = true; |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
85 } |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
86 |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
87 for (classSuffix in show) { |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
88 var query = $(".requires-" + classSuffix); |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
89 if (show[classSuffix]) |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
90 query.show(); |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
91 else |
1199b970c68b
present 'Log In' when user isn't authenticated
Atul Varma <avarma@mozilla.com>
parents:
53
diff
changeset
|
92 query.hide(); |
43
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
93 } |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
94 }); |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
95 |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
96 $("#header .menu li").click( |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
97 function openDialog(event) { |
51
3af7cd6ae638
changed menu items to use data-dialog attr instead of title, which sets tooltips.
Atul Varma <avarma@mozilla.com>
parents:
50
diff
changeset
|
98 var name = this.getAttribute("data-dialog"); |
3af7cd6ae638
changed menu items to use data-dialog attr instead of title, which sets tooltips.
Atul Varma <avarma@mozilla.com>
parents:
50
diff
changeset
|
99 var dialog = $("#" + name); |
43
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
100 if (dialog.length == 0) |
51
3af7cd6ae638
changed menu items to use data-dialog attr instead of title, which sets tooltips.
Atul Varma <avarma@mozilla.com>
parents:
50
diff
changeset
|
101 throw new Error("dialog not found: " + name); |
43
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
102 dialog.fadeIn(); |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
103 }); |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
104 |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
105 $(".dialog").click( |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
106 function dismissDialogOnOutsideClick(event) { |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
107 if (event.target == this) |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
108 $(this).fadeOut(); |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
109 }); |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
110 |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
111 function setupDocumentTitleChanger(document) { |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
112 const BASE_TITLE = document.title; |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
113 |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
114 require("app/login").whenChanged( |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
115 function changeTitle(user) { |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
116 var title = BASE_TITLE; |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
117 |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
118 if (user.isLoggedIn) |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
119 title = user.username + "'s " + BASE_TITLE; |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
120 |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
121 if (document.title != title) { |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
122 document.title = title; |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
123 $("#header .title").text(title); |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
124 } |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
125 }); |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
126 }; |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
127 |
53
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
128 exports.whenStarted = function whenStarted(cb) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
129 startupCallbacks.push(cb); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
130 }; |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
131 |
43
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
132 exports.init = function init(document) { |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
133 setupDocumentTitleChanger(document); |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
134 |
53
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
135 require("app/ui/dashboard").init(); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
136 require("app/ui/login-form").init(); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
137 require("app/ui/hash").init(document); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
138 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
139 startupCallbacks.forEach(function(cb) { cb(); }); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
140 startupCallbacks.splice(0); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
141 }; |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
142 }; |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
143 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
144 Require.modules["app/ui/hash"] = function(exports, require) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
145 function usernameFromHash(location) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
146 if (location.hash) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
147 var match = location.hash.match(/#username=(.*)/); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
148 if (match) |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
149 return unescape(match[1]); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
150 } |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
151 return ""; |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
152 } |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
153 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
154 function usernameToHash(username) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
155 return "#username=" + escape(username); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
156 } |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
157 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
158 function setLoginFromHash(location) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
159 var username = usernameFromHash(location); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
160 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
161 var user = require("app/login").get(); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
162 if (user.username != username) |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
163 require("app/login").set(username, ""); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
164 } |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
165 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
166 exports.init = function init(document) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
167 require("app/login").whenChanged( |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
168 function(user) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
169 if (user.isLoggedIn) { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
170 var hash = usernameToHash(user.username); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
171 if (document.location.hash != hash) |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
172 document.location.hash = hash; |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
173 } else |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
174 document.location.hash = ""; |
43
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
175 }); |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
176 |
53
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
177 var window = document.defaultView; |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
178 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
179 function onHashChange() { |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
180 setLoginFromHash(document.location); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
181 } |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
182 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
183 if ("onhashchange" in window) |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
184 window.addEventListener("hashchange", onHashChange, false); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
185 else |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
186 window.setInterval(onHashChange, 1000); |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
187 |
aa9b33b10820
dashboard responds to location.hash changes now.
Atul Varma <avarma@mozilla.com>
parents:
51
diff
changeset
|
188 onHashChange(); |
43
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
189 }; |
0974c1df3714
moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents:
41
diff
changeset
|
190 }; |
47
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
191 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
192 Require.modules["app/ui/dashboard"] = function(exports, require) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
193 var $ = require("jQuery"); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
194 var cache = require("cache"); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
195 var dateUtils = require("date-utils"); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
196 var bugzilla = require("bugzilla"); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
197 var window = require("window"); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
198 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
199 function sortByLastChanged(bugs) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
200 var lctimes = {}; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
201 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
202 bugs.forEach( |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
203 function(bug) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
204 lctimes[bug.id] = dateUtils.dateFromISO8601(bug.last_change_time); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
205 }); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
206 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
207 function compare(a, b) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
208 var alc = lctimes[a.id]; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
209 var blc = lctimes[b.id]; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
210 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
211 if (alc < blc) |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
212 return -1; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
213 if (alc > blc) |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
214 return 1; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
215 return 0; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
216 } |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
217 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
218 bugs.sort(compare); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
219 } |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
220 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
221 function updatePrettyDates(query) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
222 query.find(".last-changed").each( |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
223 function() { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
224 var lcTime = $(this).attr("data-last-change"); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
225 $(this).text(dateUtils.prettyDate(lcTime)); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
226 }); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
227 } |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
228 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
229 const PRETTY_DATE_UPDATE_INTERVAL = 1000 * 60; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
230 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
231 window.setInterval(function() { updatePrettyDates($("#reports")); }, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
232 PRETTY_DATE_UPDATE_INTERVAL); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
233 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
234 function showBugs(query, bugs) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
235 var table = $("#templates .bugs").clone(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
236 var rowTemplate = table.find(".bug-row").remove(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
237 sortByLastChanged(bugs); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
238 bugs.reverse(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
239 bugs.forEach( |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
240 function(bug) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
241 var row = rowTemplate.clone(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
242 row.attr("id", "bug-id-" + bug.id); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
243 row.find(".summary").text(bug.summary); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
244 row.addClass("status-" + bug.status); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
245 if (bug.priority != "--") { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
246 row.addClass(bug.priority); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
247 row.addClass(bug.severity); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
248 } |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
249 row.find(".last-changed").attr("data-last-change", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
250 bug.last_change_time); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
251 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
252 row.click( |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
253 function onClick() { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
254 window.open(bugzilla.getShowBugURL(bug.id)); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
255 }); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
256 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
257 row.hover( |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
258 function onIn() { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
259 var tooltip = $("#templates .bug-tooltip").clone(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
260 tooltip.find(".priority").text(bug.priority); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
261 // TODO: Show more information in tooltip. |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
262 $(this).append(tooltip); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
263 }, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
264 function onOut() { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
265 $(this).find(".bug-tooltip").remove(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
266 }); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
267 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
268 table.append(row); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
269 }); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
270 updatePrettyDates(table); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
271 query.find(".bugs").remove(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
272 query.append(table); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
273 table.hide(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
274 removeDuplicateBugs(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
275 table.fadeIn(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
276 } |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
277 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
278 // Remove duplicate bugs, preferring the first listing of a bug in |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
279 // the DOM to later ones. This is b/c the reports further down the |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
280 // page are the less "interesting" ones, and we want to capture |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
281 // the most "interesting" part of each bug. |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
282 function removeDuplicateBugs() { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
283 var visited = {}; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
284 $("#reports .bug-row").each( |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
285 function() { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
286 var id = $(this).attr("id"); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
287 if (id in visited) |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
288 $(this).remove(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
289 else |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
290 visited[id] = true; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
291 }); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
292 } |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
293 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
294 function report(selector, searchTerms) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
295 var newTerms = {__proto__: defaults}; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
296 for (name in searchTerms) |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
297 newTerms[name.replace(/_DOT_/g, ".")] = searchTerms[name]; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
298 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
299 var cached = cache.get(selector); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
300 if (cached) |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
301 showBugs($(selector), cached); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
302 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
303 $(selector).find("h2").addClass("loading"); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
304 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
305 bugzilla.search(newTerms, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
306 function(response) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
307 cache.set(selector, response.bugs); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
308 showBugs($(selector), response.bugs); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
309 $(selector).find("h2").removeClass("loading"); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
310 }); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
311 } |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
312 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
313 function timeAgo(ms) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
314 var now = new Date(); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
315 var then = new Date(now - ms); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
316 return dateUtils.dateToISO8601(then); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
317 } |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
318 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
319 const MS_PER_HOUR = 1000 * 60 * 60; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
320 const MS_PER_DAY = MS_PER_HOUR * 24; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
321 const MS_PER_WEEK = MS_PER_DAY * 7; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
322 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
323 var defaults = { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
324 changed_after: timeAgo(MS_PER_WEEK * 14) |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
325 }; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
326 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
327 function update(myUsername) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
328 report("#assigned-bugs", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
329 {status: ["NEW", "UNCONFIRMED", "ASSIGNED", "REOPENED"], |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
330 email1: myUsername, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
331 email1_type: "equals", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
332 email1_assigned_to: 1}); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
333 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
334 report("#fixed-bugs", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
335 {resolution: ["FIXED"], |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
336 changed_after: timeAgo(MS_PER_WEEK), |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
337 email1: myUsername, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
338 email1_type: "equals", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
339 email1_assigned_to: 1, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
340 email1_reporter: 1, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
341 email1_cc: 1}); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
342 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
343 report("#code-reviews", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
344 {status: ["NEW", "UNCONFIRMED", "ASSIGNED", "REOPENED"], |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
345 flag_DOT_requestee: myUsername}); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
346 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
347 report("#reported-bugs", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
348 {status: ["NEW", "UNCONFIRMED", "ASSIGNED", "REOPENED"], |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
349 email1: myUsername, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
350 email1_type: "equals", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
351 email1_reporter: 1, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
352 email2: myUsername, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
353 email2_type: "not_equals", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
354 email2_assigned_to: 1}); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
355 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
356 report("#cc-bugs", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
357 {status: ["NEW", "UNCONFIRMED", "ASSIGNED", "REOPENED"], |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
358 email1: myUsername, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
359 email1_type: "equals", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
360 email1_cc: 1, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
361 email2: myUsername, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
362 email2_type: "not_equals", |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
363 email2_assigned_to: 1, |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
364 email2_reporter: 1}); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
365 }; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
366 |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
367 exports.init = function init() { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
368 require("app/login").whenChanged( |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
369 function changeSearchCriteria(user) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
370 if (user.isLoggedIn) { |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
371 update(user.username); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
372 } |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
373 }); |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
374 }; |
0b71df72ebe1
integrated dashboard into main.html.
Atul Varma <avarma@mozilla.com>
parents:
43
diff
changeset
|
375 }; |