Merge lp:~gmb/launchpad/inline-help-for-bugwatches-2-bug-530162 into lp:launchpad
- inline-help-for-bugwatches-2-bug-530162
- Merge into devel
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Abel Deuring | ||||
Approved revision: | no longer in the source branch. | ||||
Merged at revision: | 10906 | ||||
Proposed branch: | lp:~gmb/launchpad/inline-help-for-bugwatches-2-bug-530162 | ||||
Merge into: | lp:launchpad | ||||
Diff against target: |
497 lines (+289/-76) 9 files modified
lib/lp/bugs/browser/bugtask.py (+61/-2) lib/lp/bugs/browser/configure.zcml (+3/-0) lib/lp/bugs/configure.zcml (+0/-1) lib/lp/bugs/interfaces/bugwatch.py (+0/-3) lib/lp/bugs/model/bugwatch.py (+0/-47) lib/lp/bugs/stories/bugwatches/xx-bugwatch-errors.txt (+23/-16) lib/lp/bugs/templates/bugtask-edit-form.pt (+9/-3) lib/lp/bugs/templates/bugtask-tasks-and-nominations-table-row.pt (+8/-4) lib/lp/bugs/templates/bugwatch-error-help.pt (+185/-0) |
||||
To merge this branch: | bzr merge lp:~gmb/launchpad/inline-help-for-bugwatches-2-bug-530162 | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Abel Deuring (community) | code | Approve | |
Matthew Revell (community) | help | Approve | |
Review via email: mp+25784@code.launchpad.net |
Commit message
Popup help has been added for BugWatch errors.
Description of the change
This branch adds inline help for bug watch errors. The idea is that users should be able to fix bug watch error problems themselves (where possible) rather than just being presented with an opaque error.
I've made the following changes:
== lib/lp/
- I've added a mixin class that can be used by views that display bugwatch error data. This has a single property, bug_watch_
== lib/lp/
- I've added the necessary ZCML for the BugWatch +error-help view.
== lib/lp/
- I've removed getLastErrorMes
== lib/lp/
- I've removed the declaration of IBugWatch.
== lib/lp/
- I've removed the implementation of BugWatch.
== lib/lp/
- I've added popup help to the warning icon that appears when a BugWatch has failed to update.
== lib/lp/
- I've added a popup help link to the error message that appears when a BugWatch has failed to update.
== lib/lp/
- I've added help for the various different types of error that a BugWatch could encounter.
=== lib/lp/
- I've updated the story to take account of the popup help links.
Abel Deuring (adeuring) : | # |
Abel Deuring (adeuring) wrote : | # |
/lp/bugs/
> --- lib/lp/
> +++ lib/lp/
> @@ -0,0 +1,182 @@
> +<html>
> + <head>
> + <title>Bug watch errors</title>
> + <link rel="stylesheet" type="text/css"
> + href="/
> + <link rel="stylesheet" type="text/css"
> + href="/
> + <link rel="stylesheet" type="text/css"
> + href="/
> + </head>
> + <body tal:define="watch view/context">
> + <h1>Bug watch update errors</h1>
> + <p>
> + Bug watches don't always update successfully. When a bug watch
> + fails to update, Launchpad records what went wrong.
> + </p>
> + <a name="UNKNOWN"></a>
> + <h2>Unknown error</h2>
> + <h3>What went wrong?</h3>
> + <p>
> + Launchpad encountered an unexpected error when trying to retrieve
> + the bug from the remote server.
> + </p>
> + <h3>How can I help fix it?</h3>
> + <p>
> + <a href="mailto:<email address hidden>">Contact us</a> and let us
> + know about the problem.
> + </p>
> + <a name="BUG_
> + <h2>Bug Not Found</h2>
> + <h3>What went wrong?</h3>
> + <p>
> + Launchpad could not find the specified bug on the remote server.
> + </p>
> + <h3>How can I help fix it?</h3>
> + <p>
> + Check that the remote bug
> + (<a tal:replace=
> + exists on the external bug tracker. If it doesn't, you should try
> + to find the correct bug and
> + <a tal:attributes=
> + that it points to the correct remote bug.
> + </p>
> + <a name="CONNECTIO
> + <h2>Connection Error</h2>
> + <h3>What went wrong?</h3>
> + <p>
> + Launchpad was unable to connect to the remote server.
> + </p>
> + <h3>How can I help fix it?</h3>
> + <p>
> + Check that the remote bug tracker
> + (<a tal:replace=
> + is on-line. If it is, you should
> + <a href="mailto:<email address hidden>">contact us</a> and let us
> + know about the problem.
> + </p>
> + <a name="INVALID_
> + <h2>Invalid Bug ID</h2>
> + <h3>What went wrong?</h3>
> + <p>
> + The remote bug ID that the bug watch is linked it isn't valid on
> + the remote bug tracker.
> + </p>
> + <h3>How can I help fix it?</h3>
> + <p>
> + <a href="mailto:<email address hidden>">Contact us</a> and let us
...know about the problem
> + </p>
> + <a name="TIMEOUT"></a>
> + <h2>Timeout</h2>
> + <h3>What went wrong?</h3>
> + <p>
> + Launchpad encountered a timeout when trying to connect to the
> + remote server and was unable to retrieve the bug's status.
> + </p>
> + <h3>How can I help fix it?</h3>
> + <p>
> + <a href="mailto:<email address hidden>">Contact us</a> and let us
...know about the problem
> + </p>
> + <p>
> + Check that the remote b...
Preview Diff
1 | === modified file 'lib/lp/bugs/browser/bugtask.py' | |||
2 | --- lib/lp/bugs/browser/bugtask.py 2010-05-09 16:08:47 +0000 | |||
3 | +++ lib/lp/bugs/browser/bugtask.py 2010-05-21 16:19:26 +0000 | |||
4 | @@ -115,6 +115,7 @@ | |||
5 | 115 | IProductSeriesBugTask, IRemoveQuestionFromBugTaskForm, IUpstreamBugTask, | 115 | IProductSeriesBugTask, IRemoveQuestionFromBugTaskForm, IUpstreamBugTask, |
6 | 116 | IUpstreamProductBugTaskSearch, UNRESOLVED_BUGTASK_STATUSES) | 116 | IUpstreamProductBugTaskSearch, UNRESOLVED_BUGTASK_STATUSES) |
7 | 117 | from lp.bugs.interfaces.bugtracker import BugTrackerType | 117 | from lp.bugs.interfaces.bugtracker import BugTrackerType |
8 | 118 | from lp.bugs.interfaces.bugwatch import BugWatchActivityStatus | ||
9 | 118 | from lp.bugs.interfaces.cve import ICveSet | 119 | from lp.bugs.interfaces.cve import ICveSet |
10 | 119 | from lp.bugs.interfaces.malone import IMaloneApplication | 120 | from lp.bugs.interfaces.malone import IMaloneApplication |
11 | 120 | from lp.registry.interfaces.distribution import IDistribution | 121 | from lp.registry.interfaces.distribution import IDistribution |
12 | @@ -1176,7 +1177,64 @@ | |||
13 | 1176 | return '_'.join(parts) | 1177 | return '_'.join(parts) |
14 | 1177 | 1178 | ||
15 | 1178 | 1179 | ||
17 | 1179 | class BugTaskEditView(LaunchpadEditFormView): | 1180 | class BugTaskBugWatchMixin: |
18 | 1181 | """A mixin to be used where a BugTask view displays BugWatch data.""" | ||
19 | 1182 | |||
20 | 1183 | @property | ||
21 | 1184 | def bug_watch_error_message(self): | ||
22 | 1185 | """Return a browser-useable error message for a bug watch.""" | ||
23 | 1186 | if not self.context.bugwatch: | ||
24 | 1187 | return None | ||
25 | 1188 | |||
26 | 1189 | bug_watch = self.context.bugwatch | ||
27 | 1190 | if not bug_watch.last_error_type: | ||
28 | 1191 | return None | ||
29 | 1192 | |||
30 | 1193 | error_message_mapping = { | ||
31 | 1194 | BugWatchActivityStatus.BUG_NOT_FOUND: "%(bugtracker)s bug #" | ||
32 | 1195 | "%(bug)s appears not to exist. Check that the bug " | ||
33 | 1196 | "number is correct.", | ||
34 | 1197 | BugWatchActivityStatus.CONNECTION_ERROR: "Launchpad couldn't " | ||
35 | 1198 | "connect to %(bugtracker)s.", | ||
36 | 1199 | BugWatchActivityStatus.INVALID_BUG_ID: "Bug ID %(bug)s isn't " | ||
37 | 1200 | "valid on %(bugtracker)s. Check that the bug ID is " | ||
38 | 1201 | "correct.", | ||
39 | 1202 | BugWatchActivityStatus.TIMEOUT: "Launchpad's connection to " | ||
40 | 1203 | "%(bugtracker)s timed out.", | ||
41 | 1204 | BugWatchActivityStatus.UNKNOWN: "Launchpad couldn't import bug " | ||
42 | 1205 | "#%(bug)s from " "%(bugtracker)s.", | ||
43 | 1206 | BugWatchActivityStatus.UNPARSABLE_BUG: "Launchpad couldn't " | ||
44 | 1207 | "extract a status from %(bug)s on %(bugtracker)s.", | ||
45 | 1208 | BugWatchActivityStatus.UNPARSABLE_BUG_TRACKER: "Launchpad " | ||
46 | 1209 | "couldn't determine the version of %(bugtrackertype)s " | ||
47 | 1210 | "running on %(bugtracker)s.", | ||
48 | 1211 | BugWatchActivityStatus.UNSUPPORTED_BUG_TRACKER: "Launchpad " | ||
49 | 1212 | "doesn't support importing bugs from %(bugtrackertype)s" | ||
50 | 1213 | " bug trackers.", | ||
51 | 1214 | BugWatchActivityStatus.PRIVATE_REMOTE_BUG: "The bug is marked as " | ||
52 | 1215 | "private on the remote bug tracker. Launchpad cannot import " | ||
53 | 1216 | "the status of private remote bugs.", | ||
54 | 1217 | } | ||
55 | 1218 | |||
56 | 1219 | if bug_watch.last_error_type in error_message_mapping: | ||
57 | 1220 | message = error_message_mapping[bug_watch.last_error_type] | ||
58 | 1221 | else: | ||
59 | 1222 | message = bug_watch.last_error_type.description | ||
60 | 1223 | |||
61 | 1224 | error_data = { | ||
62 | 1225 | 'bug': bug_watch.remotebug, | ||
63 | 1226 | 'bugtracker': bug_watch.bugtracker.title, | ||
64 | 1227 | 'bugtrackertype': bug_watch.bugtracker.bugtrackertype.title} | ||
65 | 1228 | |||
66 | 1229 | return { | ||
67 | 1230 | 'message': message % error_data, | ||
68 | 1231 | 'help_url': '%s#%s' % ( | ||
69 | 1232 | canonical_url(bug_watch, view_name="+error-help"), | ||
70 | 1233 | bug_watch.last_error_type.name), | ||
71 | 1234 | } | ||
72 | 1235 | |||
73 | 1236 | |||
74 | 1237 | class BugTaskEditView(LaunchpadEditFormView, BugTaskBugWatchMixin): | ||
75 | 1180 | """The view class used for the task +editstatus page.""" | 1238 | """The view class used for the task +editstatus page.""" |
76 | 1181 | 1239 | ||
77 | 1182 | schema = IBugTask | 1240 | schema = IBugTask |
78 | @@ -3264,7 +3322,7 @@ | |||
79 | 3264 | return None | 3322 | return None |
80 | 3265 | 3323 | ||
81 | 3266 | 3324 | ||
83 | 3267 | class BugTaskTableRowView(LaunchpadView): | 3325 | class BugTaskTableRowView(LaunchpadView, BugTaskBugWatchMixin): |
84 | 3268 | """Browser class for rendering a bugtask row on the bug page.""" | 3326 | """Browser class for rendering a bugtask row on the bug page.""" |
85 | 3269 | 3327 | ||
86 | 3270 | is_conjoined_slave = None | 3328 | is_conjoined_slave = None |
87 | @@ -3841,3 +3899,4 @@ | |||
88 | 3841 | @property | 3899 | @property |
89 | 3842 | def text(self): | 3900 | def text(self): |
90 | 3843 | return self.context.bug.displayname | 3901 | return self.context.bug.displayname |
91 | 3902 | |||
92 | 3844 | 3903 | ||
93 | === modified file 'lib/lp/bugs/browser/configure.zcml' | |||
94 | --- lib/lp/bugs/browser/configure.zcml 2010-05-18 22:36:20 +0000 | |||
95 | +++ lib/lp/bugs/browser/configure.zcml 2010-05-21 16:19:26 +0000 | |||
96 | @@ -1133,6 +1133,9 @@ | |||
97 | 1133 | <browser:page | 1133 | <browser:page |
98 | 1134 | name="+portlet-details" | 1134 | name="+portlet-details" |
99 | 1135 | template="../templates/bugwatch-portlet-details.pt"/> | 1135 | template="../templates/bugwatch-portlet-details.pt"/> |
100 | 1136 | <browser:page | ||
101 | 1137 | name="+error-help" | ||
102 | 1138 | template="../templates/bugwatch-error-help.pt"/> | ||
103 | 1136 | </browser:pages> | 1139 | </browser:pages> |
104 | 1137 | <browser:url | 1140 | <browser:url |
105 | 1138 | for="lp.bugs.interfaces.bugwatch.IBugWatchSet" | 1141 | for="lp.bugs.interfaces.bugwatch.IBugWatchSet" |
106 | 1139 | 1142 | ||
107 | === modified file 'lib/lp/bugs/configure.zcml' | |||
108 | --- lib/lp/bugs/configure.zcml 2010-04-19 19:26:05 +0000 | |||
109 | +++ lib/lp/bugs/configure.zcml 2010-05-21 16:19:26 +0000 | |||
110 | @@ -852,7 +852,6 @@ | |||
111 | 852 | can_be_rescheduled | 852 | can_be_rescheduled |
112 | 853 | datecreated | 853 | datecreated |
113 | 854 | failed_activity | 854 | failed_activity |
114 | 855 | getLastErrorMessage | ||
115 | 856 | hasComment | 855 | hasComment |
116 | 857 | unpushed_comments | 856 | unpushed_comments |
117 | 858 | id | 857 | id |
118 | 859 | 858 | ||
119 | === modified file 'lib/lp/bugs/interfaces/bugwatch.py' | |||
120 | --- lib/lp/bugs/interfaces/bugwatch.py 2010-04-30 03:10:17 +0000 | |||
121 | +++ lib/lp/bugs/interfaces/bugwatch.py 2010-05-21 16:19:26 +0000 | |||
122 | @@ -230,9 +230,6 @@ | |||
123 | 230 | def destroySelf(): | 230 | def destroySelf(): |
124 | 231 | """Delete this bug watch.""" | 231 | """Delete this bug watch.""" |
125 | 232 | 232 | ||
126 | 233 | def getLastErrorMessage(): | ||
127 | 234 | """Return a string describing the contents of last_error_type.""" | ||
128 | 235 | |||
129 | 236 | def hasComment(comment_id): | 233 | def hasComment(comment_id): |
130 | 237 | """Return True if a comment has been imported for the BugWatch. | 234 | """Return True if a comment has been imported for the BugWatch. |
131 | 238 | 235 | ||
132 | 239 | 236 | ||
133 | === modified file 'lib/lp/bugs/model/bugwatch.py' | |||
134 | --- lib/lp/bugs/model/bugwatch.py 2010-05-13 12:49:15 +0000 | |||
135 | +++ lib/lp/bugs/model/bugwatch.py 2010-05-21 16:19:26 +0000 | |||
136 | @@ -201,53 +201,6 @@ | |||
137 | 201 | assert len(self.bugtasks) == 0, "Can't delete linked bug watches" | 201 | assert len(self.bugtasks) == 0, "Can't delete linked bug watches" |
138 | 202 | SQLBase.destroySelf(self) | 202 | SQLBase.destroySelf(self) |
139 | 203 | 203 | ||
140 | 204 | def getLastErrorMessage(self): | ||
141 | 205 | """See `IBugWatch`.""" | ||
142 | 206 | |||
143 | 207 | if not self.last_error_type: | ||
144 | 208 | return None | ||
145 | 209 | |||
146 | 210 | error_message_mapping = { | ||
147 | 211 | BugWatchActivityStatus.BUG_NOT_FOUND: "%(bugtracker)s bug #" | ||
148 | 212 | "%(bug)s appears not to exist. Check that the bug " | ||
149 | 213 | "number is correct.", | ||
150 | 214 | BugWatchActivityStatus.CONNECTION_ERROR: "Launchpad couldn't " | ||
151 | 215 | "connect to %(bugtracker)s.", | ||
152 | 216 | BugWatchActivityStatus.INVALID_BUG_ID: "Bug ID %(bug)s isn't " | ||
153 | 217 | "valid on %(bugtracker)s. Check that the bug ID is " | ||
154 | 218 | "correct.", | ||
155 | 219 | BugWatchActivityStatus.TIMEOUT: "Launchpad's connection to " | ||
156 | 220 | "%(bugtracker)s timed out.", | ||
157 | 221 | BugWatchActivityStatus.UNKNOWN: "Launchpad couldn't import bug " | ||
158 | 222 | "#%(bug)s from " "%(bugtracker)s.", | ||
159 | 223 | BugWatchActivityStatus.UNPARSABLE_BUG: "Launchpad couldn't " | ||
160 | 224 | "extract a status from %(bug)s on %(bugtracker)s.", | ||
161 | 225 | BugWatchActivityStatus.UNPARSABLE_BUG_TRACKER: "Launchpad " | ||
162 | 226 | "couldn't determine the version of %(bugtrackertype)s " | ||
163 | 227 | "running on %(bugtracker)s.", | ||
164 | 228 | BugWatchActivityStatus.UNSUPPORTED_BUG_TRACKER: "Launchpad " | ||
165 | 229 | "doesn't support importing bugs from %(bugtrackertype)s" | ||
166 | 230 | " bug trackers.", | ||
167 | 231 | BugWatchActivityStatus.PRIVATE_REMOTE_BUG: "The bug is marked as " | ||
168 | 232 | "private on the remote bug tracker. Launchpad cannot import " | ||
169 | 233 | "the status of private remote bugs.", | ||
170 | 234 | } | ||
171 | 235 | |||
172 | 236 | if self.last_error_type in error_message_mapping: | ||
173 | 237 | message = error_message_mapping[self.last_error_type] | ||
174 | 238 | elif self.last_error_type != BugWatchActivityStatus.UNKNOWN: | ||
175 | 239 | message = self.last_error_type.description | ||
176 | 240 | else: | ||
177 | 241 | message = ("Launchpad couldn't import bug #%(bug)s from " | ||
178 | 242 | "%(bugtracker)s.") | ||
179 | 243 | |||
180 | 244 | error_data = { | ||
181 | 245 | 'bug': self.remotebug, | ||
182 | 246 | 'bugtracker': self.bugtracker.title, | ||
183 | 247 | 'bugtrackertype': self.bugtracker.bugtrackertype.title} | ||
184 | 248 | |||
185 | 249 | return message % error_data | ||
186 | 250 | |||
187 | 251 | @property | 204 | @property |
188 | 252 | def unpushed_comments(self): | 205 | def unpushed_comments(self): |
189 | 253 | """Return the unpushed comments for this `BugWatch`.""" | 206 | """Return the unpushed comments for this `BugWatch`.""" |
190 | 254 | 207 | ||
191 | === modified file 'lib/lp/bugs/stories/bugwatches/xx-bugwatch-errors.txt' | |||
192 | --- lib/lp/bugs/stories/bugwatches/xx-bugwatch-errors.txt 2010-04-17 02:56:58 +0000 | |||
193 | +++ lib/lp/bugs/stories/bugwatches/xx-bugwatch-errors.txt 2010-05-21 16:19:26 +0000 | |||
194 | @@ -45,14 +45,19 @@ | |||
195 | 45 | >>> logout() | 45 | >>> logout() |
196 | 46 | 46 | ||
197 | 47 | The error, telling us that the bug wasn't found on the remote server, | 47 | The error, telling us that the bug wasn't found on the remote server, |
199 | 48 | should now be displayed to the user. | 48 | should now be displayed to the user, along with a link to the popup help |
200 | 49 | for that error message. | ||
201 | 49 | 50 | ||
202 | 50 | >>> user_browser.open('http://bugs.launchpad.dev/thunderbird/+bug/12') | 51 | >>> user_browser.open('http://bugs.launchpad.dev/thunderbird/+bug/12') |
203 | 51 | >>> for tag in find_tags_by_class(user_browser.contents, | 52 | >>> for tag in find_tags_by_class(user_browser.contents, |
204 | 52 | ... 'error message'): | 53 | ... 'error message'): |
206 | 53 | ... print tag.renderContents() | 54 | ... print extract_text(tag.renderContents()) |
207 | 54 | The Mozilla.org Bug Tracker bug #900 appears not to exist. Check | 55 | The Mozilla.org Bug Tracker bug #900 appears not to exist. Check |
209 | 55 | that the bug number is correct. | 56 | that the bug number is correct. (what does this mean?) |
210 | 57 | |||
211 | 58 | >>> help_link = user_browser.getLink('(what does this mean?)') | ||
212 | 59 | >>> print help_link.url | ||
213 | 60 | http://bugs.launchpad.dev/.../+error-help#BUG_NOT_FOUND | ||
214 | 56 | 61 | ||
215 | 57 | It's also shown in the tooltip of the warning icon next to the bug watch | 62 | It's also shown in the tooltip of the warning icon next to the bug watch |
216 | 58 | in the bugtask table. | 63 | in the bugtask table. |
217 | @@ -77,29 +82,31 @@ | |||
218 | 77 | ... user_browser.open('http://bugs.launchpad.dev/thunderbird/+bug/12') | 82 | ... user_browser.open('http://bugs.launchpad.dev/thunderbird/+bug/12') |
219 | 78 | ... for tag in find_tags_by_class(user_browser.contents, | 83 | ... for tag in find_tags_by_class(user_browser.contents, |
220 | 79 | ... 'error message'): | 84 | ... 'error message'): |
223 | 80 | ... print tag.renderContents() | 85 | ... print extract_text(tag.renderContents()) |
224 | 81 | Launchpad couldn't import bug #900 from The Mozilla.org Bug Tracker. | 86 | Launchpad couldn't import bug #900 from The Mozilla.org Bug |
225 | 87 | Tracker... | ||
226 | 82 | The Mozilla.org Bug Tracker bug #900 appears not to exist. Check | 88 | The Mozilla.org Bug Tracker bug #900 appears not to exist. Check |
229 | 83 | that the bug number is correct. | 89 | that the bug number is correct... |
230 | 84 | Launchpad couldn't connect to The Mozilla.org Bug Tracker. | 90 | Launchpad couldn't connect to The Mozilla.org Bug Tracker... |
231 | 85 | Bug ID 900 isn't valid on The Mozilla.org Bug Tracker. Check that | 91 | Bug ID 900 isn't valid on The Mozilla.org Bug Tracker. Check that |
234 | 86 | the bug ID is correct. | 92 | the bug ID is correct... |
235 | 87 | Launchpad's connection to The Mozilla.org Bug Tracker timed out. | 93 | Launchpad's connection to The Mozilla.org Bug Tracker timed out... |
236 | 88 | Launchpad couldn't extract a status from 900 on The Mozilla.org Bug | 94 | Launchpad couldn't extract a status from 900 on The Mozilla.org Bug |
238 | 89 | Tracker. | 95 | Tracker... |
239 | 90 | Launchpad couldn't determine the version of Bugzilla running on The | 96 | Launchpad couldn't determine the version of Bugzilla running on The |
242 | 91 | Mozilla.org Bug Tracker. | 97 | Mozilla.org Bug Tracker... |
243 | 92 | Launchpad doesn't support importing bugs from Bugzilla bug trackers. | 98 | Launchpad doesn't support importing bugs from Bugzilla bug |
244 | 99 | trackers... | ||
245 | 93 | The bug is marked as private on the remote bug tracker. Launchpad | 100 | The bug is marked as private on the remote bug tracker. Launchpad |
247 | 94 | cannot import the status of private remote bugs. | 101 | cannot import the status of private remote bugs... |
248 | 95 | The remote bug's status was synchronized successfully but comments | 102 | The remote bug's status was synchronized successfully but comments |
250 | 96 | could not be imported from the remote bug. | 103 | could not be imported from the remote bug... |
251 | 97 | The remote bug's status was synchronized successfully and its | 104 | The remote bug's status was synchronized successfully and its |
252 | 98 | comments were successfully imported but Launchpad was unable to push | 105 | comments were successfully imported but Launchpad was unable to push |
254 | 99 | comments back to the remote bug. | 106 | comments back to the remote bug... |
255 | 100 | The remote bug's status and comments were synchronized sucessfully | 107 | The remote bug's status and comments were synchronized sucessfully |
256 | 101 | with Launchpad but Launchpad was unable to set the remote bug's link | 108 | with Launchpad but Launchpad was unable to set the remote bug's link |
258 | 102 | back to the relevant Launchpad bug. | 109 | back to the relevant Launchpad bug... |
259 | 103 | 110 | ||
260 | 104 | Finally, if the error gets solved (or no error occurs), the error | 111 | Finally, if the error gets solved (or no error occurs), the error |
261 | 105 | message will go away. | 112 | message will go away. |
262 | 106 | 113 | ||
263 | === modified file 'lib/lp/bugs/templates/bugtask-edit-form.pt' | |||
264 | --- lib/lp/bugs/templates/bugtask-edit-form.pt 2009-07-17 17:59:07 +0000 | |||
265 | +++ lib/lp/bugs/templates/bugtask-edit-form.pt 2010-05-21 16:19:26 +0000 | |||
266 | @@ -36,9 +36,15 @@ | |||
267 | 36 | <tal:bugtracker-active | 36 | <tal:bugtracker-active |
268 | 37 | condition="watch/bugtracker/active"> | 37 | condition="watch/bugtracker/active"> |
269 | 38 | <p tal:condition="watch/last_error_type" | 38 | <p tal:condition="watch/last_error_type" |
273 | 39 | class="error message" | 39 | class="error message"> |
274 | 40 | tal:content="watch/getLastErrorMessage" | 40 | <tal:bugwatch-error-message define=" |
275 | 41 | /> | 41 | message view/bug_watch_error_message/message; |
276 | 42 | help_url view/bug_watch_error_message/help_url;"> | ||
277 | 43 | <tal:message replace="message" /><br /> | ||
278 | 44 | <a tal:attributes="href help_url" target="help" class="help" | ||
279 | 45 | >(what does this mean?)</a> | ||
280 | 46 | </tal:bugwatch-error-message> | ||
281 | 47 | </p> | ||
282 | 42 | </tal:bugtracker-active> | 48 | </tal:bugtracker-active> |
283 | 43 | <p class="warning message" | 49 | <p class="warning message" |
284 | 44 | tal:condition="not:watch/bugtracker/active"> | 50 | tal:condition="not:watch/bugtracker/active"> |
285 | 45 | 51 | ||
286 | === modified file 'lib/lp/bugs/templates/bugtask-tasks-and-nominations-table-row.pt' | |||
287 | --- lib/lp/bugs/templates/bugtask-tasks-and-nominations-table-row.pt 2010-04-16 11:20:33 +0000 | |||
288 | +++ lib/lp/bugs/templates/bugtask-tasks-and-nominations-table-row.pt 2010-05-21 16:19:26 +0000 | |||
289 | @@ -114,10 +114,14 @@ | |||
290 | 114 | condition="context/bugwatch/bugtracker/active"> | 114 | condition="context/bugwatch/bugtracker/active"> |
291 | 115 | <span tal:condition="not:context/bugwatch/last_error_type" | 115 | <span tal:condition="not:context/bugwatch/last_error_type" |
292 | 116 | class="sprite bug-remote"></span> | 116 | class="sprite bug-remote"></span> |
297 | 117 | <span tal:condition="context/bugwatch/last_error_type" | 117 | <a tal:condition="context/bugwatch/last_error_type" |
298 | 118 | class="sprite warning-icon" | 118 | tal:attributes="href view/bug_watch_error_message/help_url" |
299 | 119 | tal:attributes="title context/bugwatch/getLastErrorMessage" | 119 | target="help" |
300 | 120 | id="bugwatch-error-sprite"></span> | 120 | class="icon help"> |
301 | 121 | <span class="sprite warning-icon" | ||
302 | 122 | tal:attributes="title view/bug_watch_error_message/message" | ||
303 | 123 | id="bugwatch-error-sprite"></span> | ||
304 | 124 | </a> | ||
305 | 121 | </tal:bugtracker-active> | 125 | </tal:bugtracker-active> |
306 | 122 | <span tal:condition="not:context/bugwatch/bugtracker/active" | 126 | <span tal:condition="not:context/bugwatch/bugtracker/active" |
307 | 123 | class="sprite warning-icon"></span> | 127 | class="sprite warning-icon"></span> |
308 | 124 | 128 | ||
309 | === added file 'lib/lp/bugs/templates/bugwatch-error-help.pt' | |||
310 | --- lib/lp/bugs/templates/bugwatch-error-help.pt 1970-01-01 00:00:00 +0000 | |||
311 | +++ lib/lp/bugs/templates/bugwatch-error-help.pt 2010-05-21 16:19:26 +0000 | |||
312 | @@ -0,0 +1,185 @@ | |||
313 | 1 | <html> | ||
314 | 2 | <head> | ||
315 | 3 | <title>Bug watch errors</title> | ||
316 | 4 | <link rel="stylesheet" type="text/css" | ||
317 | 5 | href="/+icing/yui/cssreset/reset.css" /> | ||
318 | 6 | <link rel="stylesheet" type="text/css" | ||
319 | 7 | href="/+icing/yui/cssfonts/fonts.css" /> | ||
320 | 8 | <link rel="stylesheet" type="text/css" | ||
321 | 9 | href="/+icing/yui/cssbase/base.css" /> | ||
322 | 10 | </head> | ||
323 | 11 | <body tal:define="watch view/context"> | ||
324 | 12 | <h1>Bug watch update errors</h1> | ||
325 | 13 | <p> | ||
326 | 14 | Bug watches don't always update successfully. When a bug watch | ||
327 | 15 | fails to update, Launchpad records what went wrong. | ||
328 | 16 | </p> | ||
329 | 17 | <a name="UNKNOWN"></a> | ||
330 | 18 | <h2>Unknown error</h2> | ||
331 | 19 | <h3>What went wrong?</h3> | ||
332 | 20 | <p> | ||
333 | 21 | Launchpad encountered an unexpected error when trying to retrieve | ||
334 | 22 | the bug from the remote server. | ||
335 | 23 | </p> | ||
336 | 24 | <h3>How can I help fix it?</h3> | ||
337 | 25 | <p> | ||
338 | 26 | <a href="mailto:feedback@launchpad.net">Contact us</a> and let us | ||
339 | 27 | know about the problem. | ||
340 | 28 | </p> | ||
341 | 29 | <a name="BUG_NOT_FOUND"></a> | ||
342 | 30 | <h2>Bug Not Found</h2> | ||
343 | 31 | <h3>What went wrong?</h3> | ||
344 | 32 | <p> | ||
345 | 33 | Launchpad could not find the specified bug on the remote server. | ||
346 | 34 | </p> | ||
347 | 35 | <h3>How can I help fix it?</h3> | ||
348 | 36 | <p> | ||
349 | 37 | Check that the remote bug | ||
350 | 38 | (<a tal:replace="structure watch/fmt:external-link" />) | ||
351 | 39 | exists on the external bug tracker. If it doesn't, you should try | ||
352 | 40 | to find the correct bug and | ||
353 | 41 | <a tal:attributes="href watch/fmt:url">update the watch</a> so | ||
354 | 42 | that it points to the correct remote bug. | ||
355 | 43 | </p> | ||
356 | 44 | <a name="CONNECTION_ERROR"></a> | ||
357 | 45 | <h2>Connection Error</h2> | ||
358 | 46 | <h3>What went wrong?</h3> | ||
359 | 47 | <p> | ||
360 | 48 | Launchpad was unable to connect to the remote server. | ||
361 | 49 | </p> | ||
362 | 50 | <h3>How can I help fix it?</h3> | ||
363 | 51 | <p> | ||
364 | 52 | Check that the remote bug tracker | ||
365 | 53 | (<a tal:replace="structure watch/bugtracker/fmt:external-link" />) | ||
366 | 54 | is on-line. If it is, you should | ||
367 | 55 | <a href="mailto:feedback@launchpad.net">contact us</a> and let us | ||
368 | 56 | know about the problem. | ||
369 | 57 | </p> | ||
370 | 58 | <a name="INVALID_BUG_ID"></a> | ||
371 | 59 | <h2>Invalid Bug ID</h2> | ||
372 | 60 | <h3>What went wrong?</h3> | ||
373 | 61 | <p> | ||
374 | 62 | The remote bug ID that the bug watch is linked to isn't valid on | ||
375 | 63 | the remote bug tracker. | ||
376 | 64 | </p> | ||
377 | 65 | <h3>How can I help fix it?</h3> | ||
378 | 66 | <p> | ||
379 | 67 | <a href="mailto:feedback@launchpad.net">Contact us</a> and let us | ||
380 | 68 | know about the problem. | ||
381 | 69 | </p> | ||
382 | 70 | <a name="TIMEOUT"></a> | ||
383 | 71 | <h2>Timeout</h2> | ||
384 | 72 | <h3>What went wrong?</h3> | ||
385 | 73 | <p> | ||
386 | 74 | Launchpad encountered a timeout when trying to connect to the | ||
387 | 75 | remote server and was unable to retrieve the bug's status. | ||
388 | 76 | </p> | ||
389 | 77 | <h3>How can I help fix it?</h3> | ||
390 | 78 | <p> | ||
391 | 79 | <a href="mailto:feedback@launchpad.net">Contact us</a> and let us | ||
392 | 80 | know about the problem. | ||
393 | 81 | </p> | ||
394 | 82 | <p> | ||
395 | 83 | Check that the remote bug tracker | ||
396 | 84 | (<a tal:replace="structure watch/bugtracker/fmt:external-link" />) | ||
397 | 85 | is on-line. If it is, you should | ||
398 | 86 | <a href="mailto:feedback@launchpad.net">contact us</a> and let us | ||
399 | 87 | know about the problem. | ||
400 | 88 | </p> | ||
401 | 89 | <a name="UNPARSABLE_BUG"></a> | ||
402 | 90 | <h2>Unparsable Bug</h2> | ||
403 | 91 | <h3>What went wrong?</h3> | ||
404 | 92 | <p> | ||
405 | 93 | Launchpad could not extract a status from the data it received | ||
406 | 94 | from the remote server. | ||
407 | 95 | </p> | ||
408 | 96 | <h3>How can I help fix it?</h3> | ||
409 | 97 | <p> | ||
410 | 98 | Check the <a attributes="href watch/fmt:url">bug watch page</a> to | ||
411 | 99 | see if this error has happened more than once. If it hasn't, it | ||
412 | 100 | could be due to bad data in the most recent update. | ||
413 | 101 | </p> | ||
414 | 102 | <p> | ||
415 | 103 | If the error has occurred more than once, you should | ||
416 | 104 | <a href="mailto:feedback@launchpad.net">contact us</a> and let us | ||
417 | 105 | know about the problem. | ||
418 | 106 | </p> | ||
419 | 107 | <a name="UNPARSABLE_BUG_TRACKER"></a> | ||
420 | 108 | <h2>Unparsable Bug Tracker Version</h2> | ||
421 | 109 | <h3>What went wrong?</h3> | ||
422 | 110 | <p> | ||
423 | 111 | Launchpad could not determine the version of the bug tracker | ||
424 | 112 | software running on the remote server. | ||
425 | 113 | </p> | ||
426 | 114 | <h3>How can I help fix it?</h3> | ||
427 | 115 | <p> | ||
428 | 116 | <a href="mailto:feedback@launchpad.net">Contact us</a> and let us | ||
429 | 117 | know about the problem. | ||
430 | 118 | </p> | ||
431 | 119 | <a name="UNSUPPORTED_BUG_TRACKER"></a> | ||
432 | 120 | <h2>Unsupported Bugtracker</h2> | ||
433 | 121 | <h3>What went wrong?</h3> | ||
434 | 122 | <p> | ||
435 | 123 | The remote server is using bug tracker software which Launchpad | ||
436 | 124 | does not currently support. | ||
437 | 125 | </p> | ||
438 | 126 | <h3>How can I help fix it?</h3> | ||
439 | 127 | <p> | ||
440 | 128 | <a href="https://bugs.launchpad.dev/malone/+filebug" | ||
441 | 129 | >File a bug</a> requesting that Launchpad support interactions | ||
442 | 130 | with the remote bug tracker. | ||
443 | 131 | </p> | ||
444 | 132 | <a name="PRIVATE_REMOTE_BUG"></a> | ||
445 | 133 | <h2>Private Remote Bug</h2> | ||
446 | 134 | <h3>What went wrong?</h3> | ||
447 | 135 | <p> | ||
448 | 136 | The bug is marked as private on the remote bug tracker. Launchpad | ||
449 | 137 | cannot import the status of private remote bugs. | ||
450 | 138 | </p> | ||
451 | 139 | <h3>How can I help fix it?</h3> | ||
452 | 140 | <p> | ||
453 | 141 | Unfortunately there isn't a lot that can be done about this. | ||
454 | 142 | You can manually update any bug task linked to the bug watch by | ||
455 | 143 | choosing "None, the status of the bug is updated manually" for | ||
456 | 144 | the Remote Watch option of each linked bug task. | ||
457 | 145 | </p> | ||
458 | 146 | <a name="COMMENT_IMPORT_FAILED"></a> | ||
459 | 147 | <h2>Unable to import comments</h2> | ||
460 | 148 | <h3>What went wrong?</h3> | ||
461 | 149 | <p> | ||
462 | 150 | The remote bug's status was synchronized successfully but comments | ||
463 | 151 | could not be imported from the remote bug. | ||
464 | 152 | </p> | ||
465 | 153 | <h3>How can I help fix it?</h3> | ||
466 | 154 | <p> | ||
467 | 155 | <a href="mailto:feedback@launchpad.net">Contact us</a> and let us | ||
468 | 156 | know about the problem. | ||
469 | 157 | </p> | ||
470 | 158 | <a name="COMMENT_PUSH_FAILED"></a> | ||
471 | 159 | <h2>Unable to push comments</h2> | ||
472 | 160 | <h3>What went wrong?</h3> | ||
473 | 161 | <p> | ||
474 | 162 | The remote bug's status was synchronized successfully and its | ||
475 | 163 | comments were successfully imported but Launchpad was unable to | ||
476 | 164 | push comments back to the remote bug. | ||
477 | 165 | </p> | ||
478 | 166 | <h3>How can I help fix it?</h3> | ||
479 | 167 | <p> | ||
480 | 168 | <a href="mailto:feedback@launchpad.net">Contact us</a> and let us | ||
481 | 169 | know about the problem. | ||
482 | 170 | </p> | ||
483 | 171 | <a name="BACKLINK_FAILED"></a> | ||
484 | 172 | <h2>Unable to set the link to the Launchpad bug on the remote server</h2> | ||
485 | 173 | <h3>What went wrong?</h3> | ||
486 | 174 | <p> | ||
487 | 175 | The remote bug's status and comments were synchronized sucessfully | ||
488 | 176 | with Launchpad but Launchpad was unable to set the remote bug's | ||
489 | 177 | link back to the relevant Launchpad bug. | ||
490 | 178 | </p> | ||
491 | 179 | <h3>How can I help fix it?</h3> | ||
492 | 180 | <p> | ||
493 | 181 | <a href="mailto:feedback@launchpad.net">Contact us</a> and let us | ||
494 | 182 | know about the problem. | ||
495 | 183 | </p> | ||
496 | 184 | </body> | ||
497 | 185 | </html> |
+1 on the help pop-up text and great work on creating a dynamic help pop-up.
Small typo:
"The remote bug ID that the bug watch is linked it isn't valid on the remote bug tracker."
Should that be "...is linked to..." ?