Merge lp:~wallyworld/launchpad/inline-picker-underscore-1005324 into lp:launchpad
- inline-picker-underscore-1005324
- Merge into devel
Status: | Merged |
---|---|
Approved by: | Curtis Hovey |
Approved revision: | no longer in the source branch. |
Merged at revision: | 15340 |
Proposed branch: | lp:~wallyworld/launchpad/inline-picker-underscore-1005324 |
Merge into: | lp:launchpad |
Diff against target: |
699 lines (+76/-108) 37 files modified
lib/canonical/launchpad/icing/css/typography.css (+4/-0) lib/lp/app/browser/tales.py (+3/-4) lib/lp/app/doc/lazr-js-widgets.txt (+2/-2) lib/lp/app/doc/tales.txt (+4/-4) lib/lp/app/javascript/formwidgets/formwidgets.js (+1/-1) lib/lp/app/javascript/inlineedit/assets/editor-core.css (+0/-21) lib/lp/app/templates/base-layout-macros.pt (+5/-0) lib/lp/app/templates/inline-multicheckbox-widget.pt (+1/-1) lib/lp/app/templates/inline-picker.pt (+2/-4) lib/lp/app/templates/launchpad-form.pt (+6/-9) lib/lp/app/templates/launchpad-inline-icon-link.pt (+2/-2) lib/lp/blueprints/templates/specification-index.pt (+2/-2) lib/lp/bugs/browser/tests/test_bugtask.py (+1/-1) lib/lp/bugs/javascript/bugtask_index.js (+4/-3) lib/lp/bugs/stories/bugtask-searches/xx-listing-basics.txt (+1/-1) lib/lp/bugs/templates/bugcomment-macros.pt (+1/-1) lib/lp/bugs/templates/bugtask-choose-affected-product.pt (+1/-2) lib/lp/bugs/templates/bugtask-index.pt (+4/-4) lib/lp/bugs/templates/bugtasks-and-nominations-portal.pt (+1/-3) lib/lp/code/templates/branch-recipes.pt (+2/-3) lib/lp/code/templates/branch-related-bugs-specs.pt (+1/-1) lib/lp/code/templates/sourcepackagerecipe-index.pt (+2/-3) lib/lp/registry/javascript/sharing/shareetable.js (+3/-3) lib/lp/registry/javascript/sharing/sharingdetails.js (+3/-5) lib/lp/registry/javascript/structural-subscription.js (+1/-3) lib/lp/registry/templates/distributionsourcepackage-index.pt (+1/-3) lib/lp/registry/templates/distroseries-add.pt (+2/-3) lib/lp/registry/templates/distroseries-initialize.pt (+3/-3) lib/lp/registry/templates/milestone-index.pt (+1/-1) lib/lp/registry/templates/milestone-tag-search.pt (+2/-3) lib/lp/registry/templates/person-editpgpkeys.pt (+1/-1) lib/lp/registry/templates/person-editsshkeys.pt (+1/-1) lib/lp/registry/templates/person-macros.pt (+1/-1) lib/lp/registry/templates/person-portlet-contact-details.pt (+4/-4) lib/lp/registry/templates/person-upcomingwork.pt (+1/-1) lib/lp/registry/templates/team-editproposed.pt (+1/-1) lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt (+1/-3) |
To merge this branch: | bzr merge lp:~wallyworld/launchpad/inline-picker-underscore-1005324 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Curtis Hovey (community) | code | Approve | |
Review via email: mp+107702@code.launchpad.net |
Commit message
Adjust css so that hovering over picker activation icon doesn't show an underscore.
Description of the change
The picker activation icons were showing an underscore when hovered over. This was because a had been added in various places to ensure the sprite icons show, since in some browsers the icons are not rendered if the anchor tag is empty.
== Implementation ==
I added css to suppress the underscore for any links the are marked as sprites.
I also fixed the issue in Opera where by the inline text editor activation icon had a funny Unicode char next to it. It turns out this was an attempt in the old lazr js library to get around the icon rendering issue for empty anchors. I replaced the Unicode char used with a like what is used everywhere else.
== QA ==
I tested in Opera, Chrome, Firefox, Konquerer.
Konquerer did not show icons for *anything* - not menu portal links, not person links, nothing. So the work in this branch fixes everything for all other browsers but Konquerer still has issues all over the place, not just in the areas covered by this branch. I'm not sure what its problem is.
Curtis Hovey (sinzui) wrote : | # |
I think I have this content hack isolated to a specific range of webkit that allows us to remove the nbsp hacks from a lot of templates.
This is the script that must be executed on every page to identify the problem engine:
if (Y.UA.Webkit > 0 Y.UA.webkit < 533) {
}
This is the CSS rule that added a the nbsp to old-webkit
body.old-webkit .sprite {
content: "\00A0";
}
We then delete about 40 we inserted into anchors in pt, js, and py
Ian Booth (wallyworld) wrote : | # |
I have added the required css and webkit version check to set the body style.
I have removed some nbsp from anchors with "spite edit" classes. However, anchors which exist to provide popup help still require the nbsp to be used for reasons I don't understand.
eg from bugtask-index.pt
<a href="/
<span class="
</a>
If I remove the nbsp, the 'maybe' sprite does not render. I do not know why. I guess if we figure out what to do the nbsp can be removed in a subsequent branch.
Ian Booth (wallyworld) wrote : | # |
I should say the help icon issue in the above comment only occurs in Chrome, not Firefox.
Curtis Hovey (sinzui) wrote : | # |
I am going to merge an look into this help issue. My local test on chromium does not show this. In fact, the markup you show has leading and trailing white-space that do take up space.
Curtis Hovey (sinzui) wrote : | # |
I've sussed it! The space is collapsed when white-space is processed is normalised. This works:
This fails because there is white-space after the open tag and before the close tag that needs normalisation:
<a href="/
<span class="
</a>
This works:
<a href="/
As does this:
<a href="/
><span class="
The anchor you are working with does not conform to Lp style. We know that browsers do not handle white-space normalisation consistently.
Curtis Hovey (sinzui) wrote : | # |
Hi Ian.
I think I have found most of the lines that need investigation and updating. As above, the rule is to ensure there are no spaces in the anchor tag.
./lib/lp/
18: class="sprite maybe">
./lib/lp/
886: '<span class="sprite %(icon)s"> '
912: '<a href="%s" alt="%s" title="%s" class="
./lib/lp/
215: <span class="sprite no"> <span
219: <span class="sprite no"> <span
223: <span class="sprite yes"> <span
227: <span class="sprite yes"> <span
./lib/lp/
65: '<a href="#"><img class="sprite edit editicon"
./lib/lp/
121: 'target="help" class="sprite maybe"> ' +
./lib/lp/
92: <a href="#" class="
./lib/lp/
125: '<span class="
./lib/lp/
78: class="sprite maybe">
./lib/lp/
23: class="sprite maybe"> <span class="
./lib/lp/
169: <a href="/
./lib/lp/
60: <span class="sprite arrowRight"
./lib/lp/
229: title="Linked to milestone 3.1" class="sprite milestone"
./lib/lp/
68: target=
./lib/lp/
75: <a target="help" href="/
186: <a target="help" href="/
./lib/lp/
20: target="help" class="sprite maybe">
./lib/lp/
162: ' data-person_
168: ' data-person_
205: ' <a class="editicon sprite edit" href="#
./lib/lp/
284: ' <span class="sprite bug-{{bug_
296: ' </a>',
323: ' </a>',
./lib/lp/
287: <a href="/
./lib/lp/
110: <span class="
132: <span class="
152: <span class="
./lib/lp/
24: <span class="
./lib/lp/
87: <span class="
./lib/lp/
15: <span class="
./lib/lp/
Curtis Hovey (sinzui) wrote : | # |
BTW, Since I think we now understand the issue, the remaining changes are trivial. I am approving this.
Ian Booth (wallyworld) wrote : | # |
I have found and fixed another problem that appears in Chrome. The issue still causes the anchor icon not be be rendered but appears (to me) to have a lightly different root cause. And it affects lp in production right now swo has been a long standing issue in Chrome AFAICT.
The milestone index page as some text "Yes. Drivers can target bugs and blueprints to this milestone." which is supposed to have an Edit icon next to it. The edit icon is not rendered. The TAL is:
<dd>
<tal:yes condition=
Yes. Drivers can target bugs and blueprints to this milestone.
</tal:yes>
<tal:no condition="not: context/active">
No. Drivers cannot target bugs and blueprints to this milestone.
</tal:no>
<a tal:replace=
</dd>
The issue turned out to be the extra ' ' between the and the "<a..."
The is used to separate the icon a little from the text it is next too. But the extra ' ' caused the icon not to render. I am not sure why.
Preview Diff
1 | === modified file 'lib/canonical/launchpad/icing/css/typography.css' |
2 | --- lib/canonical/launchpad/icing/css/typography.css 2012-03-10 15:33:33 +0000 |
3 | +++ lib/canonical/launchpad/icing/css/typography.css 2012-05-31 07:22:20 +0000 |
4 | @@ -87,6 +87,10 @@ |
5 | /* No border on images that are links. */ |
6 | border: none; |
7 | } |
8 | +body.old-webkit .sprite a.expander { |
9 | + /* Old webkit browsers require a nbsp so sprites render. */ |
10 | + content: "\00A0"; |
11 | + } |
12 | abbr[title], acronym[title] { |
13 | border-bottom: 1px dotted black; |
14 | cursor: help; |
15 | |
16 | === modified file 'lib/lp/app/browser/tales.py' |
17 | --- lib/lp/app/browser/tales.py 2012-05-18 22:04:13 +0000 |
18 | +++ lib/lp/app/browser/tales.py 2012-05-31 07:22:20 +0000 |
19 | @@ -672,7 +672,6 @@ |
20 | css_classes.add('global-notification-visible') |
21 | return ' '.join(list(css_classes)) |
22 | |
23 | - |
24 | def _getSaneBreadcrumbDetail(self, breadcrumb): |
25 | text = breadcrumb.detail |
26 | if len(text) > 64: |
27 | @@ -883,7 +882,7 @@ |
28 | else: |
29 | icon = 'no' |
30 | markup = ( |
31 | - '<span class="sprite %(icon)s"> ' |
32 | + '<span class="sprite %(icon)s">' |
33 | '<span class="invisible-link">%(icon)s</span></span>') |
34 | return markup % dict(icon=icon) |
35 | |
36 | @@ -906,10 +905,10 @@ |
37 | ]) |
38 | |
39 | icon_template = ( |
40 | - '<span alt="%s" title="%s" class="%s"> </span>') |
41 | + '<span alt="%s" title="%s" class="%s"></span>') |
42 | |
43 | linked_icon_template = ( |
44 | - '<a href="%s" alt="%s" title="%s" class="%s"> </a>') |
45 | + '<a href="%s" alt="%s" title="%s" class="%s"></a>') |
46 | |
47 | def traverse(self, name, furtherPath): |
48 | """Special-case traversal for icons with an optional rootsite.""" |
49 | |
50 | === modified file 'lib/lp/app/doc/lazr-js-widgets.txt' |
51 | --- lib/lp/app/doc/lazr-js-widgets.txt 2012-05-12 12:32:21 +0000 |
52 | +++ lib/lp/app/doc/lazr-js-widgets.txt 2012-05-31 07:22:20 +0000 |
53 | @@ -266,7 +266,7 @@ |
54 | <span> |
55 | <a class="sprite edit lazr-btn yui3-activator-act" |
56 | href="http://launchpad.dev/widget/+edit" |
57 | - title=""> <span class="invisible-link">Edit</span></a> |
58 | + title=""><span class="invisible-link">Edit</span></a> |
59 | <div class="yui3-activator-message-box yui3-activator-hidden"></div> |
60 | </span> ... |
61 | |
62 | @@ -473,7 +473,7 @@ |
63 | <a class="sprite edit lazr-btn yui3-activator-act" |
64 | href="http://code.launchpad.dev/~eric/+recipe/cake_recipe/+edit" |
65 | id="edit-distroseries-btn" |
66 | - title=""> <span class="invisible-link">Edit</span></a> |
67 | + title=""><span class="invisible-link">Edit</span></a> |
68 | </dt> |
69 | <span class="yui3-activator-data-box"> |
70 | <dl id='edit-distroseries-items'> |
71 | |
72 | === modified file 'lib/lp/app/doc/tales.txt' |
73 | --- lib/lp/app/doc/tales.txt 2012-05-22 17:00:08 +0000 |
74 | +++ lib/lp/app/doc/tales.txt 2012-05-31 07:22:20 +0000 |
75 | @@ -212,19 +212,19 @@ |
76 | All objects can be represented as a boolean icon. |
77 | |
78 | >>> print test_tales("context/image:boolean", context=None) |
79 | - <span class="sprite no"> <span |
80 | + <span class="sprite no"><span |
81 | class="invisible-link">no</span></span> |
82 | |
83 | >>> print test_tales("context/image:boolean", context=False) |
84 | - <span class="sprite no"> <span |
85 | + <span class="sprite no"><span |
86 | class="invisible-link">no</span></span> |
87 | |
88 | >>> print test_tales("context/image:boolean", context=object()) |
89 | - <span class="sprite yes"> <span |
90 | + <span class="sprite yes"><span |
91 | class="invisible-link">yes</span></span> |
92 | |
93 | >>> print test_tales("context/image:boolean", context=True) |
94 | - <span class="sprite yes"> <span |
95 | + <span class="sprite yes"><span |
96 | class="invisible-link">yes</span></span> |
97 | |
98 | |
99 | |
100 | === modified file 'lib/lp/app/javascript/formwidgets/formwidgets.js' |
101 | --- lib/lp/app/javascript/formwidgets/formwidgets.js 2011-11-08 16:35:11 +0000 |
102 | +++ lib/lp/app/javascript/formwidgets/formwidgets.js 2012-05-31 07:22:20 +0000 |
103 | @@ -118,7 +118,7 @@ |
104 | this.labelNode = Y.Node.create("<label />"); |
105 | this.helpNode = Y.Node.create(('<span class="helper unseen">'+ |
106 | ' <a href=""' + |
107 | - 'target="help" class="sprite maybe"> ' + |
108 | + 'target="help" class="sprite maybe">' + |
109 | '<span class="invisible-link"></span></a></span>')); |
110 | this.fieldNode = Y.Node.create("<div></div>"); |
111 | this.descriptionNode = Y.Node.create('<p class="formHelp" />'); |
112 | |
113 | === modified file 'lib/lp/app/javascript/inlineedit/assets/editor-core.css' |
114 | --- lib/lp/app/javascript/inlineedit/assets/editor-core.css 2011-12-21 07:54:40 +0000 |
115 | +++ lib/lp/app/javascript/inlineedit/assets/editor-core.css 2012-05-31 07:22:20 +0000 |
116 | @@ -22,24 +22,3 @@ |
117 | .yui3-ieditor-input textarea:focus { |
118 | outline: none; |
119 | } |
120 | - |
121 | -/* Konqueror doesn't render the multiline editor's button if there's |
122 | - * no apparent content in it (the sprite we use is a background image). |
123 | - * This bit of CSS is meaningless; it sets the edit link's content to |
124 | - * a zero-width non-joiner (an invisible, odorless Unicode character). |
125 | - * |
126 | - * Browsers should ignore the content attribute for :link and :visited |
127 | - * pseudo-classes, but Konqueror doesn't. Setting non-empty text |
128 | - * content here tricks it into rendering the button. |
129 | - * |
130 | - * Other things we tried instead of this hack: |
131 | - * - Insert an HTML comment in the <a>. No effect. |
132 | - * - Insert a in the <a>. No effect. |
133 | - * - Insert whitespace in the <a>. No effect. |
134 | - * - Insert a span or div in the <a>. No effect. |
135 | - * - Use a regular <img> tag instead of a sprite. Ugly in all browsers. |
136 | - * - Set the content to ".". Ugly in Konqueror. |
137 | - */ |
138 | -.yui3-editable_text-trigger:link, .yui3-editable_text-trigger:visited { |
139 | - content: "\200c"; |
140 | -} |
141 | |
142 | === modified file 'lib/lp/app/templates/base-layout-macros.pt' |
143 | --- lib/lp/app/templates/base-layout-macros.pt 2012-05-15 17:17:34 +0000 |
144 | +++ lib/lp/app/templates/base-layout-macros.pt 2012-05-31 07:22:20 +0000 |
145 | @@ -151,6 +151,7 @@ |
146 | <metal:load-lavascript use-macro="context/@@+base-layout-macros/load-javascript" /> |
147 | |
148 | <script id="base-layout-load-scripts" type="text/javascript"> |
149 | + //<![CDATA[ |
150 | LPJS.use('base', 'node', 'console', 'event', |
151 | 'oop', 'lp', 'lp.app.banner.privacy', |
152 | 'lp.app.banner.beta', 'lp.app.foldables','lp.app.sorttable', |
153 | @@ -164,6 +165,9 @@ |
154 | banner = Y.lp.app.banner.privacy.getPrivacyBanner(); |
155 | banner.show(); |
156 | } |
157 | + if (Y.UA.webkit > 0 && Y.UA.webkit < 533) { |
158 | + Y.one(document.body).addClass('old-webkit'); |
159 | + } |
160 | Y.lp.app.banner.beta.show_beta_if_needed(); |
161 | Y.lp.app.sorttable.SortTable.init(); |
162 | Y.lp.app.inlinehelp.init_help(); |
163 | @@ -184,6 +188,7 @@ |
164 | window.location = e.new_value; |
165 | }); |
166 | }); |
167 | + //]]> |
168 | </script> |
169 | <script id="base-helper-functions" type="text/javascript"> |
170 | //<![CDATA[ |
171 | |
172 | === modified file 'lib/lp/app/templates/inline-multicheckbox-widget.pt' |
173 | --- lib/lp/app/templates/inline-multicheckbox-widget.pt 2012-05-12 03:19:06 +0000 |
174 | +++ lib/lp/app/templates/inline-multicheckbox-widget.pt 2012-05-31 07:22:20 +0000 |
175 | @@ -11,7 +11,7 @@ |
176 | href view/edit_url; |
177 | title view/edit_title" |
178 | class="sprite edit lazr-btn yui3-activator-act" |
179 | - > <span class="invisible-link">Edit</span></a> |
180 | + ><span class="invisible-link">Edit</span></a> |
181 | </tal:has_choices> |
182 | <tal:label-close-tag replace="structure view/label_close_tag"/> |
183 | <span class="yui3-activator-data-box"> |
184 | |
185 | === modified file 'lib/lp/app/templates/inline-picker.pt' |
186 | --- lib/lp/app/templates/inline-picker.pt 2012-04-25 18:17:08 +0000 |
187 | +++ lib/lp/app/templates/inline-picker.pt 2012-05-31 07:22:20 +0000 |
188 | @@ -10,14 +10,12 @@ |
189 | <a tal:attributes="href view/edit_url; |
190 | title view/edit_title" |
191 | class="sprite edit lazr-btn yui3-activator-act" |
192 | - > <span class="invisible-link">Edit</span></a> |
193 | + ><span class="invisible-link">Edit</span></a> |
194 | |
195 | <a tal:condition="view/help_link" |
196 | tal:attributes="href view/help_link" |
197 | target="help" |
198 | - class="sprite maybe"> |
199 | - <span class="invisible-link">Driver help</span> |
200 | - </a> |
201 | + class="sprite maybe"><span class="invisible-link">Driver help</span></a> |
202 | <div class="yui3-activator-message-box yui3-activator-hidden"></div> |
203 | </span> |
204 | </span> |
205 | |
206 | === modified file 'lib/lp/app/templates/launchpad-form.pt' |
207 | --- lib/lp/app/templates/launchpad-form.pt 2011-12-15 22:00:24 +0000 |
208 | +++ lib/lp/app/templates/launchpad-form.pt 2012-05-31 07:22:20 +0000 |
209 | @@ -106,9 +106,8 @@ |
210 | <input tal:replace="structure widget" /> |
211 | <tal:help-link condition="widget_help_link"> |
212 | <a tal:attributes="href widget_help_link" |
213 | - target="help" class="sprite maybe"> |
214 | - <span class="invisible-link">(?)</span> |
215 | - </a> |
216 | + target="help" |
217 | + class="sprite maybe"><span class="invisible-link">(?)</span></a> |
218 | </tal:help-link> |
219 | </div> |
220 | <div class="message" tal:condition="error" |
221 | @@ -128,9 +127,8 @@ |
222 | </tal:label> |
223 | <tal:help-link condition="widget_help_link"> |
224 | <a tal:attributes="href widget_help_link" |
225 | - target="help" class="sprite maybe"> |
226 | - <span class="invisible-link">(?)</span> |
227 | - </a> |
228 | + target="help" |
229 | + class="sprite maybe"><span class="invisible-link">(?)</span></a> |
230 | </tal:help-link> |
231 | <div tal:condition="error" tal:content="structure error" |
232 | class="message">Error message</div> |
233 | @@ -148,9 +146,8 @@ |
234 | tal:content="widget/label">Label</label> |
235 | <tal:help-link condition="widget_help_link"> |
236 | <a tal:attributes="href widget_help_link" |
237 | - target="help" class="sprite maybe"> |
238 | - <span class="invisible-link">(?)</span> |
239 | - </a> |
240 | + target="help" |
241 | + class="sprite maybe"><span class="invisible-link">(?)</span></a> |
242 | </tal:help-link> |
243 | <div tal:condition="error" tal:content="structure error" |
244 | class="message">Error message</div> |
245 | |
246 | === modified file 'lib/lp/app/templates/launchpad-inline-icon-link.pt' |
247 | --- lib/lp/app/templates/launchpad-inline-icon-link.pt 2011-05-27 18:01:09 +0000 |
248 | +++ lib/lp/app/templates/launchpad-inline-icon-link.pt 2012-05-31 07:22:20 +0000 |
249 | @@ -5,5 +5,5 @@ |
250 | tal:attributes=" |
251 | class string:menu-link-${context/name} sprite ${context/icon}; |
252 | href context/url; |
253 | - title context/summary;" |
254 | -><span class="invisible-link" tal:content="context/text"></span></a></tal:link-enabled> |
255 | + title context/summary;"><span class="invisible-link" |
256 | + tal:content="context/text"></span></a></tal:link-enabled> |
257 | |
258 | === modified file 'lib/lp/blueprints/templates/specification-index.pt' |
259 | --- lib/lp/blueprints/templates/specification-index.pt 2012-03-05 13:04:16 +0000 |
260 | +++ lib/lp/blueprints/templates/specification-index.pt 2012-05-31 07:22:20 +0000 |
261 | @@ -284,8 +284,8 @@ |
262 | </div> |
263 | |
264 | <div class="portlet"> |
265 | - <a href="/+help-blueprints/workitems-help.html" target="help" class="sprite maybe"> |
266 | - <span class="invisible-link">Tag help</span></a> |
267 | + <a href="/+help-blueprints/workitems-help.html" target="help" |
268 | + class="sprite maybe"><span class="invisible-link">Tag help</span></a> |
269 | <div class="wide" tal:content="structure view/workitems_text_widget" /> |
270 | </div> |
271 | |
272 | |
273 | === modified file 'lib/lp/bugs/browser/tests/test_bugtask.py' |
274 | --- lib/lp/bugs/browser/tests/test_bugtask.py 2012-05-30 21:54:41 +0000 |
275 | +++ lib/lp/bugs/browser/tests/test_bugtask.py 2012-05-31 07:22:20 +0000 |
276 | @@ -2436,7 +2436,7 @@ |
277 | self.assertEqual(item.bug_heat_html, model['bug_heat_html']) |
278 | self.assertEqual( |
279 | '<span alt="private" title="Private" class="sprite private">' |
280 | - ' </span>', model['badges']) |
281 | + '</span>', model['badges']) |
282 | self.assertEqual(None, model['milestone_name']) |
283 | item.bugtask.milestone = self.factory.makeMilestone( |
284 | product=item.bugtask.target) |
285 | |
286 | === modified file 'lib/lp/bugs/javascript/bugtask_index.js' |
287 | --- lib/lp/bugs/javascript/bugtask_index.js 2012-05-15 19:10:39 +0000 |
288 | +++ lib/lp/bugs/javascript/bugtask_index.js 2012-05-31 07:22:20 +0000 |
289 | @@ -122,7 +122,7 @@ |
290 | var privacy_text = Y.one('#privacy-text'); |
291 | privacy_link = Y.Node.create( |
292 | '<a id="privacy-link" class="sprite edit" title="[edit]">' + |
293 | - '<span class="invisible-link">edit</span> </a>'); |
294 | + '<span class="invisible-link">edit</span></a>'); |
295 | privacy_link.set('href', privacy_link_url); |
296 | privacy_text.appendChild(privacy_link); |
297 | privacy_spinner = Y.Node.create( |
298 | @@ -422,7 +422,7 @@ |
299 | privacy_div.replaceClass('private', 'public'); |
300 | privacy_text.set( |
301 | 'innerHTML', 'This report is public '); |
302 | - banner.hide(); |
303 | + banner.hide(); |
304 | } |
305 | privacy_text.appendChild(privacy_link); |
306 | privacy_text.appendChild(privacy_spinner); |
307 | @@ -1514,4 +1514,5 @@ |
308 | "lp.bugs.information_type_choice", |
309 | "lp.app.widgets.expander", "lp.client", "escape", |
310 | "lp.client.plugins", "lp.app.errors", |
311 | - "lp.app.banner.privacy", "lp.app.confirmationoverlay"]}); |
312 | + "lp.app.banner.privacy", |
313 | + "lp.app.confirmationoverlay"]}); |
314 | |
315 | === modified file 'lib/lp/bugs/stories/bugtask-searches/xx-listing-basics.txt' |
316 | --- lib/lp/bugs/stories/bugtask-searches/xx-listing-basics.txt 2012-02-08 12:12:34 +0000 |
317 | +++ lib/lp/bugs/stories/bugtask-searches/xx-listing-basics.txt 2012-05-31 07:22:20 +0000 |
318 | @@ -226,7 +226,7 @@ |
319 | >>> milestone = find_tags_by_class(browser.contents, 'sprite milestone') |
320 | >>> print milestone[0] |
321 | <a href="http://launchpad.dev/debian/+milestone/3.1" alt="milestone 3.1" |
322 | - title="Linked to milestone 3.1" class="sprite milestone"> </a> |
323 | + title="Linked to milestone 3.1" class="sprite milestone"></a> |
324 | |
325 | |
326 | Patches also appear as badges in bug listings. |
327 | |
328 | === modified file 'lib/lp/bugs/templates/bugcomment-macros.pt' |
329 | --- lib/lp/bugs/templates/bugcomment-macros.pt 2012-05-11 21:10:07 +0000 |
330 | +++ lib/lp/bugs/templates/bugcomment-macros.pt 2012-05-31 07:22:20 +0000 |
331 | @@ -57,7 +57,7 @@ |
332 | <tbody> |
333 | <tr> |
334 | <td> |
335 | - <span class="sprite arrowRight"> </span> |
336 | + <span class="sprite arrowRight"></span> |
337 | <span tal:replace="num_hidden">42</span> comments hidden |
338 | <span id="more-comments-spinner" class="hidden"> |
339 | Loading more comments |
340 | |
341 | === modified file 'lib/lp/bugs/templates/bugtask-choose-affected-product.pt' |
342 | --- lib/lp/bugs/templates/bugtask-choose-affected-product.pt 2011-11-26 04:03:29 +0000 |
343 | +++ lib/lp/bugs/templates/bugtask-choose-affected-product.pt 2012-05-31 07:22:20 +0000 |
344 | @@ -20,8 +20,7 @@ |
345 | A bug may need fixing in more than one project. You may add another |
346 | project for this bug here. |
347 | <a href="/+help-bugs/also-affects-project-help.html" target="help" |
348 | - class="sprite maybe"> <span class="invisible-link">(?)</span> |
349 | - </a> |
350 | + class="sprite maybe"><span class="invisible-link">(?)</span></a> |
351 | </p> |
352 | |
353 | <p tal:content="structure context/fmt:link" /> |
354 | |
355 | === modified file 'lib/lp/bugs/templates/bugtask-index.pt' |
356 | --- lib/lp/bugs/templates/bugtask-index.pt 2012-05-12 03:19:06 +0000 |
357 | +++ lib/lp/bugs/templates/bugtask-index.pt 2012-05-31 07:22:20 +0000 |
358 | @@ -157,8 +157,8 @@ |
359 | id="edit-tags-cancel" |
360 | type="button">Cancel</button> |
361 | </form> |
362 | - <a href="/+help-bugs/tag-help.html" target="help" class="sprite maybe"> |
363 | - <span class="invisible-link">Tag help</span></a> |
364 | + <a href="/+help-bugs/tag-help.html" target="help" |
365 | + class="sprite maybe"><span class="invisible-link">Tag help</span></a> |
366 | </div> |
367 | <div id="add-bug-tags" |
368 | tal:attributes="class python: (not(context.bug.tags) and |
369 | @@ -166,8 +166,8 @@ |
370 | <a href="+edit" title="Add tags" id="add-tags-trigger" class="sprite add"> |
371 | Add tags |
372 | </a> |
373 | - <a href="/+help-bugs/tag-help.html" target="help" class="sprite maybe"> |
374 | - <span class="invisible-link">Tag help</span></a> |
375 | + <a href="/+help-bugs/tag-help.html" target="help" |
376 | + class="sprite maybe"><span class="invisible-link">Tag help</span></a> |
377 | <script type="text/javascript"> |
378 | LPJS.use('event', 'node', 'lp.bugs.bug_tags_entry', function(Y) { |
379 | Y.on('domready', |
380 | |
381 | === modified file 'lib/lp/bugs/templates/bugtasks-and-nominations-portal.pt' |
382 | --- lib/lp/bugs/templates/bugtasks-and-nominations-portal.pt 2012-05-12 03:19:06 +0000 |
383 | +++ lib/lp/bugs/templates/bugtasks-and-nominations-portal.pt 2012-05-31 07:22:20 +0000 |
384 | @@ -75,9 +75,7 @@ |
385 | replace="structure link/render" /> |
386 | <a href="/+help-bugs/also-affects-project-help.html" |
387 | target="help" |
388 | - class="sprite maybe"> |
389 | - <span class="invisible-link">(?)</span> |
390 | - </a> |
391 | + class="sprite maybe"><span class="invisible-link">(?)</span></a> |
392 | </span> |
393 | <span id="also-affects-package" |
394 | tal:attributes="class python:not view.canAddPackageTask() and 'private-disallow' or ''" |
395 | |
396 | === modified file 'lib/lp/code/templates/branch-recipes.pt' |
397 | --- lib/lp/code/templates/branch-recipes.pt 2011-11-26 04:03:29 +0000 |
398 | +++ lib/lp/code/templates/branch-recipes.pt 2012-05-31 07:22:20 +0000 |
399 | @@ -20,9 +20,8 @@ |
400 | </tal:recipes> |
401 | using this branch. |
402 | |
403 | - <a href="/+help-code/related-recipes.html" target="help" class="sprite maybe"> |
404 | - <span class="invisible-link">Tag help</span> |
405 | - </a> |
406 | + <a href="/+help-code/related-recipes.html" target="help" |
407 | + class="sprite maybe"><span class="invisible-link">Tag help</span></a> |
408 | </div> |
409 | |
410 | <span |
411 | |
412 | === modified file 'lib/lp/code/templates/branch-related-bugs-specs.pt' |
413 | --- lib/lp/code/templates/branch-related-bugs-specs.pt 2012-05-11 22:11:37 +0000 |
414 | +++ lib/lp/code/templates/branch-related-bugs-specs.pt 2012-05-31 07:22:20 +0000 |
415 | @@ -53,7 +53,7 @@ |
416 | <tal:link replace="structure spec/fmt:link:blueprints" /> |
417 | <tal:show-edit condition="show_edit|nothing"> |
418 | <a class="sprite edit" |
419 | - tal:attributes="href spec_branch/fmt:url;"> </a> |
420 | + tal:attributes="href spec_branch/fmt:url;"></a> |
421 | </tal:show-edit> |
422 | </li> |
423 | |
424 | |
425 | === modified file 'lib/lp/code/templates/sourcepackagerecipe-index.pt' |
426 | --- lib/lp/code/templates/sourcepackagerecipe-index.pt 2012-05-11 22:06:46 +0000 |
427 | +++ lib/lp/code/templates/sourcepackagerecipe-index.pt 2012-05-31 07:22:20 +0000 |
428 | @@ -83,9 +83,8 @@ |
429 | <div class="two-column-list"> |
430 | <dl id="build_daily"> |
431 | <dt>Build schedule: |
432 | - <a href="/+help-code/recipe-build-frequency.html" target="help" class="sprite maybe"> |
433 | - <span class="invisible-link">Tag help</span> |
434 | - </a> |
435 | + <a href="/+help-code/recipe-build-frequency.html" target="help" |
436 | + class="sprite maybe"><span class="invisible-link">Tag help</span></a> |
437 | </dt> |
438 | <dd tal:content="structure view/daily_build_widget"/> |
439 | <dd |
440 | |
441 | === modified file 'lib/lp/registry/javascript/sharing/shareetable.js' |
442 | --- lib/lp/registry/javascript/sharing/shareetable.js 2012-05-30 11:25:12 +0000 |
443 | +++ lib/lp/registry/javascript/sharing/shareetable.js 2012-05-31 07:22:20 +0000 |
444 | @@ -164,13 +164,13 @@ |
445 | ' <a title="Stop sharing with {{display_name}}"', |
446 | ' href="#" class="sprite remove"', |
447 | ' data-self_link="{{self_link}}"', |
448 | - ' data-person_name="{{display_name}}"> </a>', |
449 | + ' data-person_name="{{display_name}}"></a>', |
450 | '</span>', |
451 | '<span id="update-{{name}}">', |
452 | ' <a title="Update sharing for {{display_name}}"', |
453 | ' href="#" class="sprite add"', |
454 | ' data-self_link="{{self_link}}"', |
455 | - ' data-person_name="{{display_name}}"> </a>', |
456 | + ' data-person_name="{{display_name}}"></a>', |
457 | '</span>', |
458 | '</td>', |
459 | '<td id="td-permission-{{name}}">', |
460 | @@ -207,7 +207,7 @@ |
461 | '<li class="nowrap">', |
462 | '<span id="{{policy}}-permission-{{sharee_name}}">', |
463 | ' <span class="value"></span>', |
464 | - ' <a class="editicon sprite edit" href="#"> </a>', |
465 | + ' <a class="editicon sprite edit" href="#"></a>', |
466 | '</span></li>', |
467 | '{{/information_types}}'].join(' '); |
468 | }, |
469 | |
470 | === modified file 'lib/lp/registry/javascript/sharing/sharingdetails.js' |
471 | --- lib/lp/registry/javascript/sharing/sharingdetails.js 2012-05-11 06:29:27 +0000 |
472 | +++ lib/lp/registry/javascript/sharing/sharingdetails.js 2012-05-31 07:22:20 +0000 |
473 | @@ -281,7 +281,7 @@ |
474 | '<tr id="shared-bug-{{ bug_id }}">', |
475 | ' <td class="icon right">', |
476 | ' <span class="sortkey">{{bug_id}}</span>', |
477 | - ' <span class="sprite bug-{{bug_importance}}"> </span>', |
478 | + ' <span class="sprite bug-{{bug_importance}}"></span>', |
479 | ' </td>', |
480 | ' <td class="amount">{{bug_id}}</td>', |
481 | ' <td>', |
482 | @@ -292,8 +292,7 @@ |
483 | ' <a class="sprite remove" href="#"', |
484 | ' title="Unshare bug {{bug_id}} with {{displayname}}"', |
485 | ' data-self_link="{{self_link}}" data-name="Bug {{bug_id}}"', |
486 | - ' data-type="bug">', |
487 | - ' </a>', |
488 | + ' data-type="bug"></a>', |
489 | ' </span>', |
490 | ' </td>', |
491 | ' <td>', |
492 | @@ -319,8 +318,7 @@ |
493 | ' <a class="sprite remove" href="#"', |
494 | ' title="Unshare branch {{branch_name}} with {{displayname}}"', |
495 | ' data-self_link="{{self_link}}" data-name="{{branch_name}}"', |
496 | - ' data-type="branch">', |
497 | - ' </a>', |
498 | + ' data-type="branch"></a>', |
499 | ' </span>', |
500 | ' </td>', |
501 | ' <td>', |
502 | |
503 | === modified file 'lib/lp/registry/javascript/structural-subscription.js' |
504 | --- lib/lp/registry/javascript/structural-subscription.js 2012-03-21 01:17:13 +0000 |
505 | +++ lib/lp/registry/javascript/structural-subscription.js 2012-05-31 07:22:20 +0000 |
506 | @@ -1361,9 +1361,7 @@ |
507 | .append(Y.Node.create('<span/>') |
508 | .addClass('invisible-link') |
509 | .set('text', 'Delivery help'))); |
510 | - // For some reason the help link will not appear in Chrome unless |
511 | - // there is a non-empty element immediately after the help node. |
512 | - control.append(Y.Node.create('<span> </span>')); |
513 | + control.append(Y.Node.create('<span></span>')); |
514 | // We store a reference to the timeout that will hide the help link so |
515 | // we can cancel it if needed. |
516 | var hide_help_timeout; |
517 | |
518 | === modified file 'lib/lp/registry/templates/distributionsourcepackage-index.pt' |
519 | --- lib/lp/registry/templates/distributionsourcepackage-index.pt 2012-03-10 13:48:37 +0000 |
520 | +++ lib/lp/registry/templates/distributionsourcepackage-index.pt 2012-05-31 07:22:20 +0000 |
521 | @@ -150,9 +150,7 @@ |
522 | <td style="white-space: nowrap"> |
523 | <a class="expander" |
524 | tal:attributes="id string:pub${pubid}-expander; |
525 | - href string:${archive/fmt:url}/+sourcepub/${pubid}/+listing-archive-extra"> |
526 | - |
527 | - </a> |
528 | + href string:${archive/fmt:url}/+sourcepub/${pubid}/+listing-archive-extra"></a> |
529 | <a tal:attributes="href row/version"> |
530 | <img src="/@@/package-source" /> |
531 | <tal:version content="row/version"/> |
532 | |
533 | === modified file 'lib/lp/registry/templates/distroseries-add.pt' |
534 | --- lib/lp/registry/templates/distroseries-add.pt 2011-11-26 04:03:29 +0000 |
535 | +++ lib/lp/registry/templates/distroseries-add.pt 2012-05-31 07:22:20 +0000 |
536 | @@ -11,9 +11,8 @@ |
537 | <p metal:fill-slot="extra_info"> |
538 | This page allows you to add a new distribution series. |
539 | <a href="/+help-registry/distribution-add-series.html" |
540 | - target="help" class="sprite maybe"> |
541 | - <span class="invisible-link">(?)</span> |
542 | - </a> |
543 | + target="help" |
544 | + class="sprite maybe"><span class="invisible-link">(?)</span></a> |
545 | </p> |
546 | </div> |
547 | </div> |
548 | |
549 | === modified file 'lib/lp/registry/templates/distroseries-initialize.pt' |
550 | --- lib/lp/registry/templates/distroseries-initialize.pt 2012-02-01 15:31:32 +0000 |
551 | +++ lib/lp/registry/templates/distroseries-initialize.pt 2012-05-31 07:22:20 +0000 |
552 | @@ -16,9 +16,9 @@ |
553 | <tal:enabled condition="view/show_derivation_form"> |
554 | <div class="top-portlet"> |
555 | This page allows you to initialize a distribution series. |
556 | - <a href="/+help-registry/init-series-title-help.html" |
557 | - target="help" class="sprite maybe"> |
558 | - <span class="invisible-link">Initialization help</span></a> |
559 | + <a href="/+help-registry/init-series-title-help.html" target="help" |
560 | + class="sprite maybe"><span |
561 | + class="invisible-link">Initialization help</span></a> |
562 | </div> |
563 | <p class="error message javascript-disabled"> |
564 | Javascript is required to use this page. Please enable |
565 | |
566 | === modified file 'lib/lp/registry/templates/milestone-index.pt' |
567 | --- lib/lp/registry/templates/milestone-index.pt 2012-02-01 15:31:32 +0000 |
568 | +++ lib/lp/registry/templates/milestone-index.pt 2012-05-31 07:22:20 +0000 |
569 | @@ -132,7 +132,7 @@ |
570 | <tal:no condition="not: context/active"> |
571 | No. Drivers cannot target bugs and blueprints to this milestone. |
572 | </tal:no> |
573 | - <a tal:replace="structure milestone_menu/edit/fmt:icon" /> |
574 | + <a tal:replace="structure milestone_menu/edit/fmt:icon" /> |
575 | </dd> |
576 | </dl> |
577 | |
578 | |
579 | === modified file 'lib/lp/registry/templates/milestone-tag-search.pt' |
580 | --- lib/lp/registry/templates/milestone-tag-search.pt 2012-01-02 11:12:46 +0000 |
581 | +++ lib/lp/registry/templates/milestone-tag-search.pt 2012-05-31 07:22:20 +0000 |
582 | @@ -24,9 +24,8 @@ |
583 | <p> |
584 | <tal:tags replace="structure view/widgets/tags" /> |
585 | <input tal:replace="structure view/search_by_tags/render" /> |
586 | - <a target="help" href="/+help-registry/milestone-tags.html" class="sprite maybe"> |
587 | - <span class="invisible-link">Milestone Tags help</span> |
588 | - </a> |
589 | + <a target="help" href="/+help-registry/milestone-tags.html" |
590 | + class="sprite maybe"><span class="invisible-link">Milestone Tags help</span></a> |
591 | </p> |
592 | |
593 | <div class="error" tal:condition="view/errors"> |
594 | |
595 | === modified file 'lib/lp/registry/templates/person-editpgpkeys.pt' |
596 | --- lib/lp/registry/templates/person-editpgpkeys.pt 2012-03-02 16:17:46 +0000 |
597 | +++ lib/lp/registry/templates/person-editpgpkeys.pt 2012-05-31 07:22:20 +0000 |
598 | @@ -186,7 +186,7 @@ |
599 | </p> |
600 | <div> |
601 | <input type="submit" name="import" value="Import Key"/> |
602 | - or <a tal:attributes="href view/cancel_url">Cancel</a> |
603 | + or <a tal:attributes="href view/cancel_url">Cancel</a> |
604 | </div> |
605 | |
606 | </form> |
607 | |
608 | === modified file 'lib/lp/registry/templates/person-editsshkeys.pt' |
609 | --- lib/lp/registry/templates/person-editsshkeys.pt 2010-03-04 21:51:10 +0000 |
610 | +++ lib/lp/registry/templates/person-editsshkeys.pt 2012-05-31 07:22:20 +0000 |
611 | @@ -58,7 +58,7 @@ |
612 | </div> |
613 | <div style="margin-top: 0.5em;"> |
614 | <input type="submit" value="Import Public Key" /> |
615 | - or <a tal:attributes="href view/cancel_url">Cancel</a> |
616 | + or <a tal:attributes="href view/cancel_url">Cancel</a> |
617 | </div> |
618 | </div> |
619 | </form> |
620 | |
621 | === modified file 'lib/lp/registry/templates/person-macros.pt' |
622 | --- lib/lp/registry/templates/person-macros.pt 2012-02-16 12:45:59 +0000 |
623 | +++ lib/lp/registry/templates/person-macros.pt 2012-05-31 07:22:20 +0000 |
624 | @@ -65,7 +65,7 @@ |
625 | tal:attributes="title context/subscriptionpolicy/description"> |
626 | <span tal:replace="context/subscriptionpolicy/title" /> |
627 | <a class="sprite maybe" href="/+help-registry/team-subscription-policy.html" |
628 | - target="help"> </a> |
629 | + target="help"></a> |
630 | </dd> |
631 | </dl> |
632 | |
633 | |
634 | === modified file 'lib/lp/registry/templates/person-portlet-contact-details.pt' |
635 | --- lib/lp/registry/templates/person-portlet-contact-details.pt 2012-02-16 20:37:55 +0000 |
636 | +++ lib/lp/registry/templates/person-portlet-contact-details.pt 2012-05-31 07:22:20 +0000 |
637 | @@ -72,8 +72,8 @@ |
638 | <dd> |
639 | <img src="/@@/private" alt="" /> |
640 | <tal:openid-login content="view/openid_identity_url" /> |
641 | - <a target="help" href="/+help-registry/openid.html" class="sprite maybe"> |
642 | - <span class="invisible-link">OpenID help</span></a> |
643 | + <a target="help" href="/+help-registry/openid.html" |
644 | + class="sprite maybe"><span class="invisible-link">OpenID help</span></a> |
645 | </dd> |
646 | </dl> |
647 | |
648 | @@ -183,8 +183,8 @@ |
649 | <dd><a id="karma-total" |
650 | tal:attributes="href overview_menu/karma/url" |
651 | tal:content="context/karma">342</a> |
652 | - <a target="help" href="/+help-registry/karma.html" class="sprite maybe"> |
653 | - <span class="invisible-link">Karma help</span></a> |
654 | + <a target="help" href="/+help-registry/karma.html" |
655 | + class="sprite maybe"><span class="invisible-link">Karma help</span></a> |
656 | </dd> |
657 | </dl> |
658 | </div> |
659 | |
660 | === modified file 'lib/lp/registry/templates/person-upcomingwork.pt' |
661 | --- lib/lp/registry/templates/person-upcomingwork.pt 2012-05-21 19:40:33 +0000 |
662 | +++ lib/lp/registry/templates/person-upcomingwork.pt 2012-05-31 07:22:20 +0000 |
663 | @@ -89,7 +89,7 @@ |
664 | <tbody> |
665 | <tr class="expandable"> |
666 | <td> |
667 | - <a href="#" class="expander"> </a> |
668 | + <a href="#" class="expander"></a> |
669 | <span tal:replace="structure container/html_link" /> |
670 | </td> |
671 | <td tal:content="structure container/target_link" /> |
672 | |
673 | === modified file 'lib/lp/registry/templates/team-editproposed.pt' |
674 | --- lib/lp/registry/templates/team-editproposed.pt 2010-12-16 20:40:07 +0000 |
675 | +++ lib/lp/registry/templates/team-editproposed.pt 2012-05-31 07:22:20 +0000 |
676 | @@ -69,7 +69,7 @@ |
677 | </p> |
678 | |
679 | <input tal:replace="structure view/action_save/render" /> |
680 | - or <a tal:attributes="href view/cancel_url">Cancel</a> |
681 | + or <a tal:attributes="href view/cancel_url">Cancel</a> |
682 | </form> |
683 | </div> |
684 | |
685 | |
686 | === modified file 'lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt' |
687 | --- lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt 2012-02-21 22:46:28 +0000 |
688 | +++ lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt 2012-05-31 07:22:20 +0000 |
689 | @@ -247,9 +247,7 @@ |
690 | >>> expander_url = find_tags_by_class( |
691 | ... user_browser.contents, 'expander')[0] |
692 | >>> print expander_url |
693 | - <a class="expander" href="/ubuntu/+archive/primary/+sourcepub/26/+listing-archive-extra" id="pub26-expander"> |
694 | - |
695 | - </a> |
696 | + <a class="expander" href="/ubuntu/+archive/primary/+sourcepub/26/+listing-archive-extra" id="pub26-expander"></a> |
697 | |
698 | >>> browser.open(user_browser.getLink(id="pub26-expander").url) |
699 | >>> print extract_text(browser.contents) |
Hi Ian.
I need to think about this. Your CSS change removed the underlines from menu links, it is not clear that text with icons are links. I do not want to solve the issue this way. We really want to remove the false content.
Konqueror is broken by bug 521219; the sprite image is physically too tall to render. I think we want to test which browsers require content in the sprite. We know this affected khtml and older webkits. Maybe we can use YUI to add a CSS class to the body element. when only activates the CSS rule you deleted See http:// developer. yahoo.com/ yui/3/api/ UA.html# property_ webkit
Y.UA.webkit === 1