Merge lp:~bjornt/launchpad/form-overlay-render-by-default into lp:launchpad
- form-overlay-render-by-default
- Merge into devel
Proposed by
Björn Tillenius
Status: | Work in progress |
---|---|
Proposed branch: | lp:~bjornt/launchpad/form-overlay-render-by-default |
Merge into: | lp:launchpad |
Diff against target: | None lines |
To merge this branch: | bzr merge lp:~bjornt/launchpad/form-overlay-render-by-default |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Eleanor Berger (community) | Approve | ||
Review via email: mp+10249@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Björn Tillenius (bjornt) wrote : | # |
The diff in the MP is wrong. This is the correct one: http://
Revision history for this message
Aaron Bentley (abentley) wrote : | # |
It seems unlikely that a branch this old will merge cleanly, therefore, I am marking it work-in-progress.
Unmerged revisions
- 9095. By Björn Tillenius
-
Don't render the FormOverlay explicitly after it has been created.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'lib/canonical/launchpad/javascript/bugs/bugtask-index.js' |
2 | --- lib/canonical/launchpad/javascript/bugs/bugtask-index.js 2009-08-10 12:12:00 +0000 |
3 | +++ lib/canonical/launchpad/javascript/bugs/bugtask-index.js 2009-08-13 12:49:50 +0000 |
4 | @@ -29,7 +29,6 @@ |
5 | |
6 | // Overlay related vars. |
7 | var error_overlay; |
8 | -var form_load_callbacks = {}; |
9 | var submit_button_html = |
10 | '<button type="submit" name="field.actions.change" ' + |
11 | 'value="Change" class="lazr-pos lazr-btn" >OK</button>'; |
12 | @@ -130,10 +129,6 @@ |
13 | setup_client_and_bug(); |
14 | } |
15 | |
16 | - Y.on('io:complete', function(id, response_object) { |
17 | - form_load_callbacks[id](response_object.responseText); |
18 | - }, this); |
19 | - |
20 | // First look for 'Mark as duplicate' links. |
21 | var update_dupe_links = Y.all('.menu-link-mark-dupe'); |
22 | |
23 | @@ -146,8 +141,20 @@ |
24 | // First things first, pre-load the mark-dupe form. |
25 | update_dupe_url = update_dupe_links.item(0).getAttribute('href'); |
26 | var mark_dupe_form_url = update_dupe_url + '/++form++'; |
27 | - var dupe_form_id = Y.io(mark_dupe_form_url); |
28 | - form_load_callbacks[dupe_form_id.id] = createBugDuplicateFormOverlay; |
29 | + |
30 | + duplicate_form_overlay = new Y.lazr.FormOverlay({ |
31 | + headerContent: '<h2>Mark bug report as duplicate</h2>', |
32 | + form_header: 'Marking the bug as a duplicate will, by default, ' + |
33 | + 'hide it from search results listings.', |
34 | + form_submit_button: Y.Node.create(submit_button_html), |
35 | + form_cancel_button: Y.Node.create(cancel_button_html), |
36 | + centered: true, |
37 | + form_submit_callback: update_bug_duplicate, |
38 | + visible: false |
39 | + }); |
40 | + duplicate_form_overlay.render('#duplicate-form-container'); |
41 | + duplicate_form_overlay.loadFormContentAndRender( |
42 | + mark_dupe_form_url); |
43 | |
44 | // Add an on-click handler to any links found that displays |
45 | // the form overlay. |
46 | @@ -179,8 +186,18 @@ |
47 | privacy_spinner = Y.Node.create( |
48 | '<img src="/@@/spinner" style="display: none" />'); |
49 | privacy_text.appendChild(privacy_spinner); |
50 | - var privacy_form_id = Y.io(privacy_link_url); |
51 | - form_load_callbacks[privacy_form_id.id] = create_privacy_form_overlay; |
52 | + |
53 | + |
54 | + privacy_form_overlay = new Y.lazr.FormOverlay({ |
55 | + headerContent: '<h2>Change privacy settings</h2>', |
56 | + form_submit_button: Y.Node.create(submit_button_html), |
57 | + form_cancel_button: Y.Node.create(cancel_button_html), |
58 | + centered: true, |
59 | + form_submit_callback: update_privacy_settings, |
60 | + visible: false |
61 | + }); |
62 | + privacy_form_overlay.render('#privacy-form-container'); |
63 | + privacy_form_overlay.loadFormContentAndRender(privacy_link_url); |
64 | privacy_link.on('click', function(e) { |
65 | if (privacy_form_overlay) { |
66 | e.preventDefault(); |
67 | @@ -330,26 +347,6 @@ |
68 | } |
69 | |
70 | /* |
71 | - * Creates the duplicate form overlay using the passed form content. |
72 | - * |
73 | - * @method createBugDuplicateFormOverlay |
74 | - */ |
75 | -function createBugDuplicateFormOverlay(form_content) { |
76 | - duplicate_form_overlay = new Y.lazr.FormOverlay({ |
77 | - headerContent: '<h2>Mark bug report as duplicate</h2>', |
78 | - form_header: 'Marking the bug as a duplicate will, by default, ' + |
79 | - 'hide it from search results listings.', |
80 | - form_content: form_content, |
81 | - form_submit_button: Y.Node.create(submit_button_html), |
82 | - form_cancel_button: Y.Node.create(cancel_button_html), |
83 | - centered: true, |
84 | - form_submit_callback: update_bug_duplicate, |
85 | - visible: false |
86 | - }); |
87 | - duplicate_form_overlay.render('#duplicate-form-container'); |
88 | -} |
89 | - |
90 | -/* |
91 | * Update the bug duplicate via the LP API |
92 | */ |
93 | function update_bug_duplicate(data) { |
94 | @@ -473,27 +470,6 @@ |
95 | }; |
96 | |
97 | |
98 | -/* |
99 | - * Create the privacy settings form overlay. |
100 | - * |
101 | - * @method create_privacy_form_overlay |
102 | - * @param form_content {String} The HTML data of the form overlay. |
103 | - */ |
104 | -var create_privacy_form_overlay = function(form_content) { |
105 | - privacy_form_overlay = new Y.lazr.FormOverlay({ |
106 | - headerContent: '<h2>Change privacy settings</h2>', |
107 | - form_header: '', |
108 | - form_content: form_content, |
109 | - form_submit_button: Y.Node.create(submit_button_html), |
110 | - form_cancel_button: Y.Node.create(cancel_button_html), |
111 | - centered: true, |
112 | - form_submit_callback: update_privacy_settings, |
113 | - visible: false |
114 | - }); |
115 | - privacy_form_overlay.render('#privacy-form-container'); |
116 | - var node = Y.get('#form-container'); |
117 | -}; |
118 | - |
119 | var update_privacy_settings = function(data) { |
120 | // XXX noodles 2009-03-17 bug=336866 It seems the etag |
121 | // returned by lp_save() is incorrect. Remove it for now |
122 | |
123 | === modified file 'lib/canonical/launchpad/javascript/code/branchlinks.js' |
124 | --- lib/canonical/launchpad/javascript/code/branchlinks.js 2009-07-28 22:05:34 +0000 |
125 | +++ lib/canonical/launchpad/javascript/code/branchlinks.js 2009-08-13 13:16:04 +0000 |
126 | @@ -32,8 +32,6 @@ |
127 | |
128 | link_bug_overlay = new Y.lazr.FormOverlay({ |
129 | headerContent: '<h2>Link to a bug</h2>', |
130 | - form_content: Y.Node.create( |
131 | - '<div id="bugnumberform"></div>'), |
132 | form_submit_button: Y.Node.create( |
133 | '<button type="submit" name="buglink.actions.change" ' + |
134 | 'value="Change" class="lazr-pos lazr-btn">Ok</button>'), |
135 | @@ -45,18 +43,7 @@ |
136 | visible: false |
137 | }); |
138 | link_bug_overlay.render(); |
139 | - Y.io('+linkbug/++form++', { |
140 | - on: { |
141 | - success: function(id, response) { |
142 | - Y.get('#bugnumberform').set( |
143 | - 'innerHTML', response.responseText); |
144 | - }, |
145 | - failure: function(id, response) { |
146 | - Y.get('#bugnumberform').set( |
147 | - 'innerHTML', 'A problem has occurred.'); |
148 | - Y.log(reponse.responseText); |
149 | - }}}); |
150 | - |
151 | + link_bug_overlay.loadFormContentAndRender('+linkbug/++form++'); |
152 | var linkbug_handle = Y.get('#linkbug'); |
153 | linkbug_handle.addClass('js-action'); |
154 | linkbug_handle.on('click', function(e) { |
155 | |
156 | === modified file 'lib/canonical/launchpad/javascript/code/branchsubscription.js' |
157 | --- lib/canonical/launchpad/javascript/code/branchsubscription.js 2009-07-14 06:13:02 +0000 |
158 | +++ lib/canonical/launchpad/javascript/code/branchsubscription.js 2009-08-13 13:47:24 +0000 |
159 | @@ -69,30 +69,6 @@ |
160 | return element.getAttribute('href'); |
161 | } |
162 | |
163 | -function create_self_subscription_form_overlay(form_content) { |
164 | - subscription_form_overlay = new Y.lazr.FormOverlay({ |
165 | - headerContent: '<h2>Subscribe to branch</h2>', |
166 | - form_content: form_content, |
167 | - form_submit_button: Y.Node.create( |
168 | - '<button type="submit" name="field.actions.change" ' + |
169 | - 'value="Change" class="lazr-pos lazr-btn">Ok</button>'), |
170 | - form_cancel_button: Y.Node.create( |
171 | - '<button type="button" name="field.actions.cancel" ' + |
172 | - 'class="lazr-neg lazr-btn">Cancel</button>'), |
173 | - centered: true, |
174 | - form_submit_callback: subscribe_yourself_inline, |
175 | - visible: false |
176 | - }); |
177 | - subscription_form_overlay.render(); |
178 | - |
179 | - /* XXX: rockstar - bug=389185 - The form is a bit wide for the current |
180 | - * form overlay, and there isn't an easy way to resize it, thus this hack. |
181 | - */ |
182 | - Y.get('#shadow').setStyle('width', '562px'); |
183 | - Y.get('div#yui-pretty-overlay-modal.content_box_container').setStyle( |
184 | - 'width', '500px'); |
185 | -} |
186 | - |
187 | /* |
188 | * Handle the submission of the form overlay. |
189 | */ |
190 | @@ -163,15 +139,28 @@ |
191 | |
192 | update_subscription_url = get_element_href(subscribe_yourself); |
193 | var subscription_form_url = update_subscription_url + '/++form++'; |
194 | - Y.io(subscription_form_url, { |
195 | - on: { |
196 | - success: function(id, response) { |
197 | - create_self_subscription_form_overlay( |
198 | - response.responseText); |
199 | - }, |
200 | - failure: function(id, response) { |
201 | - Y.log(response.responseText); |
202 | - }}}); |
203 | + subscription_form_overlay = new Y.lazr.FormOverlay({ |
204 | + headerContent: '<h2>Subscribe to branch</h2>', |
205 | + form_submit_button: Y.Node.create( |
206 | + '<button type="submit" name="field.actions.change" ' + |
207 | + 'value="Change" class="lazr-pos lazr-btn">Ok</button>'), |
208 | + form_cancel_button: Y.Node.create( |
209 | + '<button type="button" name="field.actions.cancel" ' + |
210 | + 'class="lazr-neg lazr-btn">Cancel</button>'), |
211 | + centered: true, |
212 | + form_submit_callback: subscribe_yourself_inline, |
213 | + visible: false |
214 | + }); |
215 | + subscription_form_overlay.render(); |
216 | + subscription_form_overlay.loadFormContentAndRender( |
217 | + subscription_form_url); |
218 | + |
219 | + /* XXX: rockstar - bug=389185 - The form is a bit wide for the current |
220 | + * form overlay, and there isn't an easy way to resize it, thus this hack. |
221 | + */ |
222 | + Y.get('#shadow').setStyle('width', '562px'); |
223 | + Y.get('div#yui-pretty-overlay-modal.content_box_container').setStyle( |
224 | + 'width', '500px'); |
225 | subscribe_yourself.addClass('js-action'); |
226 | subscribe_yourself.on('click', function(e) { |
227 | e.preventDefault(); |
228 | |
229 | === modified file 'lib/canonical/launchpad/javascript/registry/milestoneoverlay.js' |
230 | --- lib/canonical/launchpad/javascript/registry/milestoneoverlay.js 2009-07-17 00:26:05 +0000 |
231 | +++ lib/canonical/launchpad/javascript/registry/milestoneoverlay.js 2009-08-13 13:36:02 +0000 |
232 | @@ -15,31 +15,6 @@ |
233 | var series_uri; |
234 | var next_step; |
235 | |
236 | - var error_box_html = |
237 | - '<div style="margin: 2em">' + |
238 | - '<p id="milestone-error" class="error message" ' + |
239 | - 'style="width: 80%; display:none; ' + |
240 | - 'padding-left: 1.5em; padding-right: 1.5em;" />' + |
241 | - '</div>'; |
242 | - |
243 | - var create_form_overlay = function (id, response, args) { |
244 | - var form_content = error_box_html + response.responseText; |
245 | - var form_submit_button = Y.Node.create( |
246 | - '<input type="submit" name="field.actions.register" ' + |
247 | - 'id="formoverlay-add-milestone" value="Create Milestone"/>'); |
248 | - milestone_form = new Y.lazr.FormOverlay({ |
249 | - headerContent: '<h2>Create Milestone</h2>', |
250 | - form_content: form_content, |
251 | - form_submit_button: form_submit_button, |
252 | - centered: true, |
253 | - form_submit_callback: save_new_milestone, |
254 | - visible: false |
255 | - }); |
256 | - milestone_form.render(); |
257 | - Y.lp.add_calendar_widgets(); |
258 | - milestone_form.show(); |
259 | - }; |
260 | - |
261 | var save_new_milestone = function(data) { |
262 | |
263 | var parameters = { |
264 | @@ -54,9 +29,7 @@ |
265 | } |
266 | |
267 | var finish_new_milestone = function(ignore) { |
268 | - var error_box = Y.get('#milestone-error'); |
269 | - error_box.set('innerHTML', ''); |
270 | - error_box.setStyle('display', 'none'); |
271 | + milestone_form.clearError(); |
272 | milestone_form.hide(); |
273 | // Reset the HTML form inside the widget. |
274 | milestone_form.get('contentBox').query('form').reset(); |
275 | @@ -74,8 +47,7 @@ |
276 | '</strong><p>' + |
277 | response.responseText + |
278 | '</p>'; |
279 | - error_box.set('innerHTML', error_message); |
280 | - error_box.setStyle('display', 'block'); |
281 | + milestone_form.showError(error_message); |
282 | } |
283 | } |
284 | }); |
285 | @@ -83,33 +55,20 @@ |
286 | |
287 | |
288 | var setup_milestone_form = function () { |
289 | - Y.io(milestone_form_uri, { |
290 | - on: { |
291 | - success: create_form_overlay, |
292 | - failure: function (ignore, response, args) { |
293 | - var error_page = Y.Node.create('<div/>'); |
294 | - error_page.setStyle('position', 'absolute'); |
295 | - error_page.setStyle('top', '0'); |
296 | - error_page.setStyle('bottom', '0'); |
297 | - error_page.setStyle('left', '0'); |
298 | - error_page.setStyle('right', '0'); |
299 | - error_page.setStyle('margin', 'auto'); |
300 | - error_page.setStyle('width', '80%'); |
301 | - error_page.setStyle('height', '80%'); |
302 | - error_page.setStyle('overflow', 'auto'); |
303 | - error_page.setStyle('background', 'white'); |
304 | - error_page.setStyle('padding', '1em'); |
305 | - error_page.setStyle('border', '3px solid black'); |
306 | - var error_message = '<strong>' + response.statusText + |
307 | - '</strong><p>' + |
308 | - response.responseText + |
309 | - '</p>'; |
310 | - error_page.set('innerHTML', error_message); |
311 | - var body = Y.get('body'); |
312 | - body.appendChild(error_page); |
313 | - } |
314 | - } |
315 | + var form_submit_button = Y.Node.create( |
316 | + '<input type="submit" name="field.actions.register" ' + |
317 | + 'id="formoverlay-add-milestone" value="Create Milestone"/>'); |
318 | + milestone_form = new Y.lazr.FormOverlay({ |
319 | + headerContent: '<h2>Create Milestone</h2>', |
320 | + form_submit_button: form_submit_button, |
321 | + centered: true, |
322 | + form_submit_callback: save_new_milestone, |
323 | + visible: false |
324 | }); |
325 | + milestone_form.render(); |
326 | + milestone_form.loadFormContentAndRender(milestone_form_uri); |
327 | + Y.lp.add_calendar_widgets(); |
328 | + milestone_form.show(); |
329 | }; |
330 | |
331 | show_milestone_form = function(e) { |
With lp:~bjornt/lazr-js/formoverlay-render-by-default, there's no need
to explicitly render FormOverlays after creating it. This branch cleans
up all the callsites in Launchpad.
There was one place (the +filebug page) where I didn't know whether it
would be safe not to render it explicitly, so I left that as it were,
passing in render=false to the constructor.
This branch depends on lp:~bjornt/launchpad/form-overlay-load-external,
which might not have been merged yet.
-- /launchpad. net/~bjornt
Björn Tillenius | https:/