Merge lp:~edwin-grubbs/launchpad/bug-513260-registry-js-module-names into lp:launchpad
- bug-513260-registry-js-module-names
- Merge into devel
Proposed by
Edwin Grubbs
on 2010-02-11
| Status: | Merged | ||||
|---|---|---|---|---|---|
| Approved by: | Edwin Grubbs on 2010-02-12 | ||||
| Approved revision: | not available | ||||
| Merged at revision: | not available | ||||
| Proposed branch: | lp:~edwin-grubbs/launchpad/bug-513260-registry-js-module-names | ||||
| Merge into: | lp:launchpad | ||||
| Diff against target: |
937 lines (+240/-224) 18 files modified
lib/canonical/launchpad/javascript/lp/dragscroll.js (+132/-122) lib/canonical/launchpad/javascript/lp/mapping.js (+34/-34) lib/canonical/launchpad/javascript/lp/picker.js (+4/-4) lib/canonical/launchpad/javascript/registry/milestoneoverlay.js (+5/-5) lib/canonical/launchpad/javascript/registry/milestonetable.js (+35/-27) lib/canonical/launchpad/javascript/registry/tests/milestone_table.html (+5/-5) lib/canonical/launchpad/javascript/registry/tests/test_milestone_table.js (+3/-3) lib/canonical/launchpad/javascript/registry/tests/timeline-iframe.html (+4/-4) lib/canonical/launchpad/javascript/registry/tests/timeline.html (+2/-1) lib/canonical/launchpad/javascript/registry/tests/timeline.js (+1/-1) lib/lp/app/templates/base-layout-macros.pt (+2/-0) lib/lp/registry/browser/__init__.py (+4/-4) lib/lp/registry/browser/tests/productrelease-views.txt (+1/-1) lib/lp/registry/browser/tests/productseries-views.txt (+3/-3) lib/lp/registry/templates/distroseries-index.pt (+0/-3) lib/lp/registry/templates/object-timeline-graph.pt (+3/-2) lib/lp/registry/templates/productrelease-add-from-series.pt (+2/-2) lib/lp/registry/templates/productseries-index.pt (+0/-3) |
||||
| To merge this branch: | bzr merge lp:~edwin-grubbs/launchpad/bug-513260-registry-js-module-names | ||||
| Related bugs: |
|
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Abel Deuring (community) | code | 2010-02-11 | Approve on 2010-02-12 |
|
Review via email:
|
|||
Commit Message
Fixed conflicts between YUI module names, namespaces, and filenames.
Description of the Change
To post a comment you must log in.
| Edwin Grubbs (edwin-grubbs) wrote : | # |
Download full text (4.8 KiB)
| Abel Deuring (adeuring) wrote : | # |
Hi Edwin,
nice change. I think you should s/Copyright 2009/Copyright 2010/ in milestone_table.js and dragscroll.js.
review:
Approve
(code)
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
| 1 | === modified file 'lib/canonical/launchpad/javascript/lp/dragscroll.js' |
| 2 | --- lib/canonical/launchpad/javascript/lp/dragscroll.js 2009-10-08 17:13:13 +0000 |
| 3 | +++ lib/canonical/launchpad/javascript/lp/dragscroll.js 2010-02-12 16:34:16 +0000 |
| 4 | @@ -1,4 +1,10 @@ |
| 5 | -/* |
| 6 | +/* Copyright 2010 Canonical Ltd. This software is licensed under the |
| 7 | + * GNU Affero General Public License version 3 (see the file LICENSE). |
| 8 | + * |
| 9 | + * A milestone form overlay that can create a milestone within any page. |
| 10 | + * |
| 11 | + * @module Y.lp.dragscroll |
| 12 | + * |
| 13 | * Based on dragscroll script by Nicolas Mendoza <nicolasm@opera.com>. |
| 14 | * http://people.opera.com/nicolasm/userjs/dragscroll |
| 15 | */ |
| 16 | @@ -9,126 +15,130 @@ |
| 17 | * @class DragScrollEventHandler |
| 18 | * @constructor |
| 19 | */ |
| 20 | -DragScrollEventHandler = function() { |
| 21 | - this.dragging = false; |
| 22 | - this.last_position = null; |
| 23 | - this.event_listeners = []; |
| 24 | -} |
| 25 | - |
| 26 | -DragScrollEventHandler.prototype = { |
| 27 | - /** |
| 28 | - * Add the event handlers and change the cursor to indicate |
| 29 | - * that drag scrolling is active. |
| 30 | - * |
| 31 | - * @method activate |
| 32 | - */ |
| 33 | - activate: function() { |
| 34 | - this._addEventListener("mousedown", this._startDragScroll); |
| 35 | - this._addEventListener("mouseup", this._stopDragScroll); |
| 36 | - this._addEventListener("mouseout", this._stopDragScroll); |
| 37 | - this._addEventListener("mousemove", this._dragScroll); |
| 38 | - this._setGrabCursor(); |
| 39 | - }, |
| 40 | - |
| 41 | - /** |
| 42 | - * Remove the event handlers and change the cursor to indicate |
| 43 | - * that drag scrolling is inactive. |
| 44 | - * |
| 45 | - * @method deactivate |
| 46 | - */ |
| 47 | - deactivate: function() { |
| 48 | - document.removeEventListener( |
| 49 | - "mousedown", this._startDragScroll, false); |
| 50 | - this._removeEventListeners(); |
| 51 | - this._unsetCursor(); |
| 52 | - }, |
| 53 | - |
| 54 | - _addEventListener: function(event_type, action) { |
| 55 | - // Wrap the method in a different function that forces |
| 56 | - // `this` to be the `DragScrollEventHandler` object. |
| 57 | - var self = this; |
| 58 | - var event_listener = function(e) { |
| 59 | - action.call(self, e) |
| 60 | - }; |
| 61 | - var event_args = [event_type, event_listener, false]; |
| 62 | - this.event_listeners.push(event_args); |
| 63 | - document.addEventListener.apply(document, event_args); |
| 64 | - }, |
| 65 | - |
| 66 | - _removeEventListeners: function() { |
| 67 | - for (var i=0; i<this.event_listeners.length; i++) { |
| 68 | - var event_args = this.event_listeners[i]; |
| 69 | - document.removeEventListener.apply(document, event_args); |
| 70 | - } |
| 71 | - }, |
| 72 | - |
| 73 | - _unsetCursor: function() { |
| 74 | - document.body.style.cursor = ''; |
| 75 | - }, |
| 76 | - |
| 77 | - _setGrabCursor: function() { |
| 78 | - // Styles for W3C, IE, Mozilla, Webkit. |
| 79 | - // Unknown styles will fail to change the value. |
| 80 | - document.body.style.cursor = 'move'; |
| 81 | - document.body.style.cursor = 'grab'; |
| 82 | - document.body.style.cursor = '-moz-grab'; |
| 83 | - document.body.style.cursor = '-webkit-grab'; |
| 84 | - }, |
| 85 | - |
| 86 | - _setGrabbingCursor: function() { |
| 87 | - // Styles for IE, Mozilla, and Webkit. |
| 88 | - // Unknown styles will fail to change the value. |
| 89 | - document.body.style.cursor = 'grabbing'; |
| 90 | - document.body.style.cursor = '-moz-grabbing'; |
| 91 | - document.body.style.cursor = '-webkit-grabbing'; |
| 92 | - }, |
| 93 | - |
| 94 | - /** |
| 95 | - * MouseDown event handler that causes _dragScroll to |
| 96 | - * take action when it receives a MouseMove event. |
| 97 | - * |
| 98 | - * @method _startDragScroll |
| 99 | - */ |
| 100 | - _startDragScroll: function(e) { |
| 101 | - if (e.button == 0) { |
| 102 | - this.dragging = true; |
| 103 | - this.last_position = e; |
| 104 | - this._setGrabbingCursor(); |
| 105 | - } |
| 106 | - e.preventDefault(); |
| 107 | - e.stopPropagation(); |
| 108 | - }, |
| 109 | - |
| 110 | - /** |
| 111 | - * MouseUp & MouseOut event handler that causes _dragScroll to |
| 112 | - * once again ignore MouseMove events. Stopping dragging when |
| 113 | - * the MouseOut event occurs is helpful, since the MouseUp event |
| 114 | - * is not reliable, when the mouse is outside the window. |
| 115 | - * |
| 116 | - * @method _stopDragScroll |
| 117 | - */ |
| 118 | - _stopDragScroll: function(e) { |
| 119 | +YUI.add('lp.dragscroll', function(Y) { |
| 120 | + var module = Y.namespace('lp.dragscroll'); |
| 121 | + |
| 122 | + module.DragScrollEventHandler = function() { |
| 123 | this.dragging = false; |
| 124 | - this._setGrabCursor(); |
| 125 | - e.preventDefault(); |
| 126 | - e.stopPropagation(); |
| 127 | - }, |
| 128 | - |
| 129 | - /** |
| 130 | - * MouseMove event handler that calculates the movement |
| 131 | - * by comparing the mouse positions in the current event and |
| 132 | - * the previous event. |
| 133 | - * |
| 134 | - * @method _dragScroll |
| 135 | - */ |
| 136 | - _dragScroll: function(e) { |
| 137 | - if (this.dragging) { |
| 138 | - window.scrollBy( |
| 139 | - this.last_position.clientX - e.clientX, |
| 140 | - this.last_position.clientY - e.clientY); |
| 141 | - this.last_position = e; |
| 142 | - e.preventDefault(); |
| 143 | - e.stopPropagation(); |
| 144 | + this.last_position = null; |
| 145 | + this.event_listeners = []; |
| 146 | + }; |
| 147 | + |
| 148 | + module.DragScrollEventHandler.prototype = { |
| 149 | + /** |
| 150 | + * Add the event handlers and change the cursor to indicate |
| 151 | + * that drag scrolling is active. |
| 152 | + * |
| 153 | + * @method activate |
| 154 | + */ |
| 155 | + activate: function() { |
| 156 | + this._addEventListener("mousedown", this._startDragScroll); |
| 157 | + this._addEventListener("mouseup", this._stopDragScroll); |
| 158 | + this._addEventListener("mouseout", this._stopDragScroll); |
| 159 | + this._addEventListener("mousemove", this._dragScroll); |
| 160 | + this._setGrabCursor(); |
| 161 | + }, |
| 162 | + |
| 163 | + /** |
| 164 | + * Remove the event handlers and change the cursor to indicate |
| 165 | + * that drag scrolling is inactive. |
| 166 | + * |
| 167 | + * @method deactivate |
| 168 | + */ |
| 169 | + deactivate: function() { |
| 170 | + document.removeEventListener( |
| 171 | + "mousedown", this._startDragScroll, false); |
| 172 | + this._removeEventListeners(); |
| 173 | + this._unsetCursor(); |
| 174 | + }, |
| 175 | + |
| 176 | + _addEventListener: function(event_type, action) { |
| 177 | + // Wrap the method in a different function that forces |
| 178 | + // `this` to be the `DragScrollEventHandler` object. |
| 179 | + var self = this; |
| 180 | + var event_listener = function(e) { |
| 181 | + action.call(self, e); |
| 182 | + }; |
| 183 | + var event_args = [event_type, event_listener, false]; |
| 184 | + this.event_listeners.push(event_args); |
| 185 | + document.addEventListener.apply(document, event_args); |
| 186 | + }, |
| 187 | + |
| 188 | + _removeEventListeners: function() { |
| 189 | + for (var i=0; i<this.event_listeners.length; i++) { |
| 190 | + var event_args = this.event_listeners[i]; |
| 191 | + document.removeEventListener.apply(document, event_args); |
| 192 | + } |
| 193 | + }, |
| 194 | + |
| 195 | + _unsetCursor: function() { |
| 196 | + document.body.style.cursor = ''; |
| 197 | + }, |
| 198 | + |
| 199 | + _setGrabCursor: function() { |
| 200 | + // Styles for W3C, IE, Mozilla, Webkit. |
| 201 | + // Unknown styles will fail to change the value. |
| 202 | + document.body.style.cursor = 'move'; |
| 203 | + document.body.style.cursor = 'grab'; |
| 204 | + document.body.style.cursor = '-moz-grab'; |
| 205 | + document.body.style.cursor = '-webkit-grab'; |
| 206 | + }, |
| 207 | + |
| 208 | + _setGrabbingCursor: function() { |
| 209 | + // Styles for IE, Mozilla, and Webkit. |
| 210 | + // Unknown styles will fail to change the value. |
| 211 | + document.body.style.cursor = 'grabbing'; |
| 212 | + document.body.style.cursor = '-moz-grabbing'; |
| 213 | + document.body.style.cursor = '-webkit-grabbing'; |
| 214 | + }, |
| 215 | + |
| 216 | + /** |
| 217 | + * MouseDown event handler that causes _dragScroll to |
| 218 | + * take action when it receives a MouseMove event. |
| 219 | + * |
| 220 | + * @method _startDragScroll |
| 221 | + */ |
| 222 | + _startDragScroll: function(e) { |
| 223 | + if (e.button === 0) { |
| 224 | + this.dragging = true; |
| 225 | + this.last_position = e; |
| 226 | + this._setGrabbingCursor(); |
| 227 | + } |
| 228 | + e.preventDefault(); |
| 229 | + e.stopPropagation(); |
| 230 | + }, |
| 231 | + |
| 232 | + /** |
| 233 | + * MouseUp & MouseOut event handler that causes _dragScroll to |
| 234 | + * once again ignore MouseMove events. Stopping dragging when |
| 235 | + * the MouseOut event occurs is helpful, since the MouseUp event |
| 236 | + * is not reliable, when the mouse is outside the window. |
| 237 | + * |
| 238 | + * @method _stopDragScroll |
| 239 | + */ |
| 240 | + _stopDragScroll: function(e) { |
| 241 | + this.dragging = false; |
| 242 | + this._setGrabCursor(); |
| 243 | + e.preventDefault(); |
| 244 | + e.stopPropagation(); |
| 245 | + }, |
| 246 | + |
| 247 | + /** |
| 248 | + * MouseMove event handler that calculates the movement |
| 249 | + * by comparing the mouse positions in the current event and |
| 250 | + * the previous event. |
| 251 | + * |
| 252 | + * @method _dragScroll |
| 253 | + */ |
| 254 | + _dragScroll: function(e) { |
| 255 | + if (this.dragging) { |
| 256 | + window.scrollBy( |
| 257 | + this.last_position.clientX - e.clientX, |
| 258 | + this.last_position.clientY - e.clientY); |
| 259 | + this.last_position = e; |
| 260 | + e.preventDefault(); |
| 261 | + e.stopPropagation(); |
| 262 | + } |
| 263 | } |
| 264 | - } |
| 265 | -}; |
| 266 | + }; |
| 267 | +}, "0.1", {"requires": []}); |
| 268 | |
| 269 | === modified file 'lib/canonical/launchpad/javascript/lp/mapping.js' |
| 270 | --- lib/canonical/launchpad/javascript/lp/mapping.js 2009-11-24 09:30:01 +0000 |
| 271 | +++ lib/canonical/launchpad/javascript/lp/mapping.js 2010-02-12 16:34:16 +0000 |
| 272 | @@ -8,19 +8,19 @@ |
| 273 | * @required Google GMap2 |
| 274 | */ |
| 275 | YUI.add('lp.mapping', function(Y) { |
| 276 | - var mapping = Y.namespace('lp.mapping'); |
| 277 | + var module = Y.namespace('lp.mapping'); |
| 278 | |
| 279 | - mapping.RETURN_FALSE = function() {return false;}; |
| 280 | - mapping.RETURN_NULL = function() {return null;}; |
| 281 | + module.RETURN_FALSE = function() {return false;}; |
| 282 | + module.RETURN_NULL = function() {return null;}; |
| 283 | |
| 284 | // Replace the crucial GMap functions so that the supporting functions |
| 285 | // will work if the GMap script is not loaded. |
| 286 | - var gBrowserIsCompatible = mapping.RETURN_FALSE; |
| 287 | - var gDownloadUrl = mapping.RETURN_NULL; |
| 288 | - |
| 289 | - mapping.has_gmaps = (typeof(GBrowserIsCompatible) == 'function'); |
| 290 | - |
| 291 | - if (mapping.has_gmaps) { |
| 292 | + var gBrowserIsCompatible = module.RETURN_FALSE; |
| 293 | + var gDownloadUrl = module.RETURN_NULL; |
| 294 | + |
| 295 | + module.has_gmaps = (typeof(GBrowserIsCompatible) == 'function'); |
| 296 | + |
| 297 | + if (module.has_gmaps) { |
| 298 | // The GMap2 is is loaded; use the real functions. |
| 299 | // jslint does not like functions that look like classes. |
| 300 | gBrowserIsCompatible = GBrowserIsCompatible; |
| 301 | @@ -37,7 +37,7 @@ |
| 302 | * @param {GLatLngBounds} required_bounds the boundaries or null. |
| 303 | * @param {limit} optional max number of markers to set. |
| 304 | */ |
| 305 | - mapping.setMarkersInfoWindow = function(data, map, required_bounds, |
| 306 | + module.setMarkersInfoWindow = function(data, map, required_bounds, |
| 307 | limit) { |
| 308 | var xml = GXml.parse(data); |
| 309 | var markers = xml.documentElement.getElementsByTagName("participant"); |
| 310 | @@ -79,9 +79,9 @@ |
| 311 | * @param {GMap2} map the Google map to add the markers to. |
| 312 | * @param {limit} optional max number of markers to set. |
| 313 | */ |
| 314 | - mapping.setMarkersInfoWindowForSmallMap = function(data, map, limit) { |
| 315 | + module.setMarkersInfoWindowForSmallMap = function(data, map, limit) { |
| 316 | var required_bounds = new GLatLngBounds(); |
| 317 | - mapping.setMarkersInfoWindow(data, map, required_bounds, limit); |
| 318 | + module.setMarkersInfoWindow(data, map, required_bounds, limit); |
| 319 | var zoom_level = map.getBoundsZoomLevel(required_bounds); |
| 320 | // Some browsers do not display the map when the zoom_level is at the |
| 321 | // end of the range, reduce the zoom_level by 1. |
| 322 | @@ -100,7 +100,7 @@ |
| 323 | * @param {String} lat_name the id of the latitude field. |
| 324 | * @param {String} lng_name the id of the longitude field. |
| 325 | */ |
| 326 | - mapping.setLocation = function(lat, lng, geoname, |
| 327 | + module.setLocation = function(lat, lng, geoname, |
| 328 | tz_name, lat_name, lng_name) { |
| 329 | Y.one(Y.DOM.byId(lat_name)).set('value', lat); |
| 330 | Y.one(Y.DOM.byId(lng_name)).set('value', lng); |
| 331 | @@ -134,13 +134,13 @@ |
| 332 | * @function toggleShowSmallMaps |
| 333 | * @param {Event} e the event for this callback. |
| 334 | */ |
| 335 | - mapping.toggleShowSmallMaps = function (checkbox) { |
| 336 | + module.toggleShowSmallMaps = function (checkbox) { |
| 337 | var is_shown = checkbox.get('checked'); |
| 338 | Y.lp.launchpad_views.set('small_maps', is_shown); |
| 339 | var display = is_shown ? 'block' : 'none'; |
| 340 | var maps = Y.all('.small-map'); |
| 341 | maps.each(function(map) {map.setStyle('display', display);}); |
| 342 | - if (is_shown && !mapping.has_gmaps) { |
| 343 | + if (is_shown && !module.has_gmaps) { |
| 344 | // The server must add the Google GMap2 dependencies to the page. |
| 345 | window.location.reload(); |
| 346 | } |
| 347 | @@ -152,14 +152,14 @@ |
| 348 | * @function setupShowSmallMapsControl |
| 349 | * @param {String} div_id the CSS3 id of the div that controls the map. |
| 350 | */ |
| 351 | - mapping.setupShowSmallMapsControl = function (div_id) { |
| 352 | + module.setupShowSmallMapsControl = function (div_id) { |
| 353 | var show_small_maps = Y.lp.launchpad_views.get('small_maps'); |
| 354 | var checkbox = Y.Node.create( |
| 355 | '<input type="checkbox" name="show_small_maps" />'); |
| 356 | checkbox.set( |
| 357 | 'checked', show_small_maps); |
| 358 | checkbox.on( |
| 359 | - 'click', function(e) {mapping.toggleShowSmallMaps(checkbox);}); |
| 360 | + 'click', function(e) {module.toggleShowSmallMaps(checkbox);}); |
| 361 | var label_text = Y.Node.create('Display map'); |
| 362 | var label = Y.Node.create('<label></label>'); |
| 363 | label.appendChild(checkbox); |
| 364 | @@ -167,7 +167,7 @@ |
| 365 | var action_div = Y.one(div_id); |
| 366 | action_div.appendChild(label); |
| 367 | if (!show_small_maps) { |
| 368 | - mapping.toggleShowSmallMaps(checkbox); |
| 369 | + module.toggleShowSmallMaps(checkbox); |
| 370 | } |
| 371 | }; |
| 372 | |
| 373 | @@ -180,7 +180,7 @@ |
| 374 | * @param {Number} center_lng a GLatLng.lng bounded number. |
| 375 | * @return {GMap2} the Google map |
| 376 | */ |
| 377 | - mapping.getSmallMap = function(div_id, center_lat, center_lng) { |
| 378 | + module.getSmallMap = function(div_id, center_lat, center_lng) { |
| 379 | var mapdiv = Y.DOM.byId(div_id); |
| 380 | mapdiv.style.width = '400px'; |
| 381 | var map = new GMap2(mapdiv); |
| 382 | @@ -197,12 +197,12 @@ |
| 383 | * @param {Number} center_lat a GLatLng.lat bounded number. |
| 384 | * @param {Number} center_lng a GLatLng.lng bounded number. |
| 385 | */ |
| 386 | - mapping.renderPersonMapSmall = function(center_lat, center_lng) { |
| 387 | - mapping.setupShowSmallMapsControl('#person_map_actions'); |
| 388 | + module.renderPersonMapSmall = function(center_lat, center_lng) { |
| 389 | + module.setupShowSmallMapsControl('#person_map_actions'); |
| 390 | if (!gBrowserIsCompatible()) { |
| 391 | return; |
| 392 | } |
| 393 | - var map = mapping.getSmallMap( |
| 394 | + var map = module.getSmallMap( |
| 395 | 'person_map_div', center_lat, center_lng); |
| 396 | map.addControl(new GSmallZoomControl()); |
| 397 | var center = new GLatLng(center_lat, center_lng); |
| 398 | @@ -218,15 +218,15 @@ |
| 399 | * @param {Number} center_lat a GLatLng.lat bounded number. |
| 400 | * @param {Number} center_lng a GLatLng.lng bounded number. |
| 401 | */ |
| 402 | - mapping.renderTeamMapSmall = function(center_lat, center_lng) { |
| 403 | - mapping.setupShowSmallMapsControl('#team_map_actions'); |
| 404 | + module.renderTeamMapSmall = function(center_lat, center_lng) { |
| 405 | + module.setupShowSmallMapsControl('#team_map_actions'); |
| 406 | if (!gBrowserIsCompatible()) { |
| 407 | return; |
| 408 | } |
| 409 | - var team_map = mapping.getSmallMap( |
| 410 | + var team_map = module.getSmallMap( |
| 411 | 'team_map_div', center_lat, center_lng); |
| 412 | gDownloadUrl("+mapdataltd", function(data) { |
| 413 | - mapping.setMarkersInfoWindowForSmallMap(data, team_map); |
| 414 | + module.setMarkersInfoWindowForSmallMap(data, team_map); |
| 415 | }); |
| 416 | }; |
| 417 | |
| 418 | @@ -237,7 +237,7 @@ |
| 419 | * @param {String} div_id the id of the map div. |
| 420 | * @return {GMap2} The Google map |
| 421 | */ |
| 422 | - mapping.getLargeMap = function(div_id) { |
| 423 | + module.getLargeMap = function(div_id) { |
| 424 | var mapdiv = Y.DOM.byId(div_id); |
| 425 | var mapheight = (parseInt(mapdiv.offsetWidth, 10) / 16 * 9); |
| 426 | mapheight = Math.min(mapheight, Y.DOM.winHeight() - 180); |
| 427 | @@ -276,12 +276,12 @@ |
| 428 | * @param {Number} center_lat a GLatLng.lat bounded number. |
| 429 | * @param {Number} center_lng a GLatLng.lng bounded number. |
| 430 | */ |
| 431 | - mapping.renderTeamMap = function(min_lat, max_lat, min_lng, max_lng, |
| 432 | + module.renderTeamMap = function(min_lat, max_lat, min_lng, max_lng, |
| 433 | center_lat, center_lng) { |
| 434 | if (!gBrowserIsCompatible()) { |
| 435 | return; |
| 436 | } |
| 437 | - var team_map = mapping.getLargeMap("team_map_div"); |
| 438 | + var team_map = module.getLargeMap("team_map_div"); |
| 439 | var center = new GLatLng(center_lat, center_lng); |
| 440 | team_map.setCenter(center, 0); |
| 441 | var sw = new GLatLng(min_lat, min_lng); |
| 442 | @@ -294,7 +294,7 @@ |
| 443 | G_HYBRID_MAP.getMaximumResolution(), zoom_level - 1); |
| 444 | team_map.setZoom(zoom_level); |
| 445 | gDownloadUrl("+mapdata", function(data) { |
| 446 | - mapping.setMarkersInfoWindow(data, team_map); |
| 447 | + module.setMarkersInfoWindow(data, team_map); |
| 448 | }); |
| 449 | }; |
| 450 | |
| 451 | @@ -314,13 +314,13 @@ |
| 452 | * @param {number} zoom the initial zoom-level. |
| 453 | * @param {Boolean} show_marker Show the marker for the person. |
| 454 | */ |
| 455 | - mapping.renderPersonMap = function(center_lat, center_lng, displayname, |
| 456 | + module.renderPersonMap = function(center_lat, center_lng, displayname, |
| 457 | name, logo_html, geoname, lat_name, |
| 458 | lng_name, tz_name, zoom, show_marker) { |
| 459 | if (!gBrowserIsCompatible()) { |
| 460 | return; |
| 461 | } |
| 462 | - var map = mapping.getLargeMap('map_div'); |
| 463 | + var map = module.getLargeMap('map_div'); |
| 464 | var center = new GLatLng(center_lat, center_lng); |
| 465 | map.setCenter(center, zoom); |
| 466 | var marker = new GMarker(center, {draggable: true}); |
| 467 | @@ -333,7 +333,7 @@ |
| 468 | |
| 469 | GEvent.addListener(marker, "dragend", function() { |
| 470 | var point = marker.getLatLng(); |
| 471 | - mapping.setLocation( |
| 472 | + module.setLocation( |
| 473 | point.lat(), point.lng(), geoname, |
| 474 | tz_name, lat_name, lng_name); |
| 475 | }); |
| 476 | @@ -357,7 +357,7 @@ |
| 477 | marker.show(); |
| 478 | map.panTo(point); |
| 479 | } |
| 480 | - mapping.setLocation( |
| 481 | + module.setLocation( |
| 482 | point.lat(), point.lng(), geoname, |
| 483 | tz_name, lat_name, lng_name); |
| 484 | }); |
| 485 | |
| 486 | === modified file 'lib/canonical/launchpad/javascript/lp/picker.js' |
| 487 | --- lib/canonical/launchpad/javascript/lp/picker.js 2010-01-29 10:52:58 +0000 |
| 488 | +++ lib/canonical/launchpad/javascript/lp/picker.js 2010-02-12 16:34:16 +0000 |
| 489 | @@ -2,7 +2,7 @@ |
| 490 | |
| 491 | Y.log('loading lp.picker'); |
| 492 | |
| 493 | -Y.namespace('lp.picker'); |
| 494 | +var module = Y.namespace('lp.picker'); |
| 495 | |
| 496 | var BATCH_SIZE = 6; |
| 497 | var MAX_BATCHES = 20; |
| 498 | @@ -24,7 +24,7 @@ |
| 499 | * config.step_title overrides the subtitle. |
| 500 | * description strings. |
| 501 | */ |
| 502 | -Y.lp.picker.addPickerPatcher = function ( |
| 503 | +module.addPickerPatcher = function ( |
| 504 | vocabulary, resource_uri, attribute_name, |
| 505 | content_box_id, show_remove_button, show_assign_me_button, config) { |
| 506 | |
| 507 | @@ -151,7 +151,7 @@ |
| 508 | }; |
| 509 | |
| 510 | config.save = save; |
| 511 | - var picker = Y.lp.picker.create(vocabulary, config); |
| 512 | + var picker = module.create(vocabulary, config); |
| 513 | picker._resource_uri = resource_uri; |
| 514 | var extra_buttons = Y.Node.create( |
| 515 | '<div style="text-align: center; height: 3em; ' + |
| 516 | @@ -200,7 +200,7 @@ |
| 517 | * config.save is a Function (optional) which takes |
| 518 | * a single string argument. |
| 519 | */ |
| 520 | -Y.lp.picker.create = function (vocabulary, config) { |
| 521 | +module.create = function (vocabulary, config) { |
| 522 | if (Y.UA.ie) { |
| 523 | return; |
| 524 | } |
| 525 | |
| 526 | === modified file 'lib/canonical/launchpad/javascript/registry/milestoneoverlay.js' |
| 527 | --- lib/canonical/launchpad/javascript/registry/milestoneoverlay.js 2009-11-24 09:30:01 +0000 |
| 528 | +++ lib/canonical/launchpad/javascript/registry/milestoneoverlay.js 2010-02-12 16:34:16 +0000 |
| 529 | @@ -3,12 +3,12 @@ |
| 530 | * |
| 531 | * A milestone form overlay that can create a milestone within any page. |
| 532 | * |
| 533 | - * @module Y.lp.milestoneoverlay |
| 534 | + * @module Y.registry.milestoneoverlay |
| 535 | * @requires dom, node, io-base, lazr.anim, lazr.formoverlay |
| 536 | */ |
| 537 | -YUI.add('lp.milestoneoverlay', function(Y) { |
| 538 | - Y.log('loading lp.milestoneoverlay'); |
| 539 | - var milestoneoverlay = Y.namespace('lp.milestoneoverlay'); |
| 540 | +YUI.add('registry.milestoneoverlay', function(Y) { |
| 541 | + Y.log('loading registry.milestoneoverlay'); |
| 542 | + var module = Y.namespace('registry.milestoneoverlay'); |
| 543 | |
| 544 | var milestone_form; |
| 545 | var milestone_form_uri; |
| 546 | @@ -96,7 +96,7 @@ |
| 547 | * next_step is the function to be called after |
| 548 | * the milestone is created. |
| 549 | */ |
| 550 | - milestoneoverlay.attach_widget = function(config) { |
| 551 | + module.attach_widget = function(config) { |
| 552 | if (Y.UA.ie) { |
| 553 | return; |
| 554 | } |
| 555 | |
| 556 | === renamed file 'lib/canonical/launchpad/javascript/registry/milestone_table.js' => 'lib/canonical/launchpad/javascript/registry/milestonetable.js' |
| 557 | --- lib/canonical/launchpad/javascript/registry/milestone_table.js 2009-11-25 18:16:41 +0000 |
| 558 | +++ lib/canonical/launchpad/javascript/registry/milestonetable.js 2010-02-12 16:34:16 +0000 |
| 559 | @@ -1,13 +1,21 @@ |
| 560 | -YUI.add('lp.milestonetable', function(Y) { |
| 561 | - Y.log('loading lp.milestonetable'); |
| 562 | - var self = Y.namespace('lp.milestonetable'); |
| 563 | +/* Copyright 2010 Canonical Ltd. This software is licensed under the |
| 564 | + * GNU Affero General Public License version 3 (see the file LICENSE). |
| 565 | + * |
| 566 | + * Dynamically add milestones to an HTML table. |
| 567 | + * |
| 568 | + * @module Y.registry.milestonetable |
| 569 | + * @requires node, io-base, substitute, lazr.anim |
| 570 | + */ |
| 571 | +YUI.add('registry.milestonetable', function(Y) { |
| 572 | + Y.log('loading registry.milestonetable'); |
| 573 | + var module = Y.namespace('registry.milestonetable'); |
| 574 | |
| 575 | // get_milestone_row() needs these when it is called. Other methods |
| 576 | // should get this information passed as an argument. |
| 577 | - self._milestone_row_uri_template = null; |
| 578 | - self._tbody = null; |
| 579 | + module._milestone_row_uri_template = null; |
| 580 | + module._tbody = null; |
| 581 | |
| 582 | - self._prepend_node = function(parent_node, child_node) { |
| 583 | + module._prepend_node = function(parent_node, child_node) { |
| 584 | // Add the child_node to the parent_node as the first item. |
| 585 | var children = parent_node.get('children'); |
| 586 | if (children === null) { |
| 587 | @@ -17,13 +25,13 @@ |
| 588 | } |
| 589 | }; |
| 590 | |
| 591 | - self._ensure_table_is_seen = function(tbody) { |
| 592 | + module._ensure_table_is_seen = function(tbody) { |
| 593 | // Remove the 'unseen' class from the table to ensure it is visible. |
| 594 | table = tbody.ancestor(); |
| 595 | table.removeClass('unseen'); |
| 596 | }; |
| 597 | |
| 598 | - self._clear_add_handlers = function(data) { |
| 599 | + module._clear_add_handlers = function(data) { |
| 600 | // Detach the callback and errorback functions from the Y.io events. |
| 601 | // The data has been used. If they are not detached, there will be |
| 602 | // multiple adds for each use of the Create milestone link. |
| 603 | @@ -31,36 +39,36 @@ |
| 604 | data.failure_handle.detach(); |
| 605 | }; |
| 606 | |
| 607 | - self._on_add_success = function(id, response, data) { |
| 608 | + module._on_add_success = function(id, response, data) { |
| 609 | // Add the milestone to the milestone table on Y.io success. |
| 610 | var row = Y.Node.create(Y.Lang.trim(response.responseText)); |
| 611 | - self._ensure_table_is_seen(data.tbody); |
| 612 | - self._prepend_node(data.tbody, row); |
| 613 | + module._ensure_table_is_seen(data.tbody); |
| 614 | + module._prepend_node(data.tbody, row); |
| 615 | Y.lazr.anim.green_flash({node: row}).run(); |
| 616 | - self._clear_add_handlers(data); |
| 617 | + module._clear_add_handlers(data); |
| 618 | }; |
| 619 | |
| 620 | - self._on_add_failure = function(id, response, data) { |
| 621 | + module._on_add_failure = function(id, response, data) { |
| 622 | // Add the failure message to the milestone table on Y.io failure. |
| 623 | var row = Y.Node.create(Y.substitute( |
| 624 | '<tr><td colspan="0">' + |
| 625 | 'Could not retrieve milestone {name}</td></tr>', data)); |
| 626 | - self._ensure_table_is_seen(data.tbody); |
| 627 | - self._prepend_node(data.tbody, row); |
| 628 | + module._ensure_table_is_seen(data.tbody); |
| 629 | + module._prepend_node(data.tbody, row); |
| 630 | Y.lazr.anim.red_flash({node: row}).run(); |
| 631 | - self._clear_add_handlers(data); |
| 632 | + module._clear_add_handlers(data); |
| 633 | }; |
| 634 | |
| 635 | - self._setup_milestone_event_data = function(parameters, tbody) { |
| 636 | + module._setup_milestone_event_data = function(parameters, tbody) { |
| 637 | // Attach the callback to the Y.io event and return their data |
| 638 | var data = { |
| 639 | name: parameters.name, |
| 640 | tbody: tbody |
| 641 | }; |
| 642 | data.success_handle = Y.on( |
| 643 | - 'io:success', self._on_add_success, this, data); |
| 644 | + 'io:success', module._on_add_success, this, data); |
| 645 | data.failure_handle = Y.on( |
| 646 | - 'io:failure', self._on_add_failure, this, data); |
| 647 | + 'io:failure', module._on_add_failure, this, data); |
| 648 | return data; |
| 649 | }; |
| 650 | |
| 651 | @@ -73,24 +81,24 @@ |
| 652 | * @param {Object} parameters Object literal of config name/value pairs. |
| 653 | * The form parameters that were submitted to create the milestone. |
| 654 | */ |
| 655 | - self.get_milestone_row = function(parameters) { |
| 656 | - self._setup_milestone_event_data(parameters, self._tbody); |
| 657 | + module.get_milestone_row = function(parameters) { |
| 658 | + module._setup_milestone_event_data(parameters, module._tbody); |
| 659 | var milestone_row_uri = Y.substitute( |
| 660 | - self._milestone_row_uri_template, parameters); |
| 661 | + module._milestone_row_uri_template, parameters); |
| 662 | Y.io(milestone_row_uri); |
| 663 | }; |
| 664 | |
| 665 | /** |
| 666 | * Setup the URL to get the milestone and the table it will be added too. |
| 667 | * |
| 668 | - * @method get_milestone_row |
| 669 | + * @method setup |
| 670 | * @param {Object} parameters Object literal of config name/value pairs. |
| 671 | * config.milestone_row_uri_template is the Y.substitute template |
| 672 | * that is used to create the URL to get the milestone row. |
| 673 | * config.milestone_rows_id is the id the the tbody that the |
| 674 | * milestone row will be added too. |
| 675 | */ |
| 676 | - self.setup = function(config) { |
| 677 | + module.setup = function(config) { |
| 678 | if (config === undefined) { |
| 679 | throw new Error( |
| 680 | "Missing setup config for milestonetable."); |
| 681 | @@ -100,9 +108,9 @@ |
| 682 | throw new Error( |
| 683 | "Undefined properties in setup config for milestonetable."); |
| 684 | } |
| 685 | - self._milestone_row_uri_template = config.milestone_row_uri_template; |
| 686 | - self._tbody = Y.one(config.milestone_rows_id); |
| 687 | - if (self._tbody === null) { |
| 688 | + module._milestone_row_uri_template = config.milestone_row_uri_template; |
| 689 | + module._tbody = Y.one(config.milestone_rows_id); |
| 690 | + if (module._tbody === null) { |
| 691 | throw new Error( |
| 692 | Y.substitute("'{milestone_rows_id}' not in page.", config)); |
| 693 | } |
| 694 | |
| 695 | === modified file 'lib/canonical/launchpad/javascript/registry/tests/milestone_table.html' |
| 696 | --- lib/canonical/launchpad/javascript/registry/tests/milestone_table.html 2009-09-14 15:03:45 +0000 |
| 697 | +++ lib/canonical/launchpad/javascript/registry/tests/milestone_table.html 2010-02-12 16:34:16 +0000 |
| 698 | @@ -4,15 +4,15 @@ |
| 699 | <title>Launchpad milestonetable</title> |
| 700 | |
| 701 | <!-- YUI 3.0 Setup --> |
| 702 | - <script type="text/javascript" src="../../../icing/yui/current/build/yui/yui.js"></script> |
| 703 | + <script type="text/javascript" src="../../../icing/yui/yui/yui.js"></script> |
| 704 | <script type="text/javascript" src="../../../icing/lazr/build/lazr.js"></script> |
| 705 | - <link rel="stylesheet" href="../../../icing/yui/current/build/cssreset/reset.css"/> |
| 706 | - <link rel="stylesheet" href="../../../icing/yui/current/build/cssfonts/fonts.css"/> |
| 707 | - <link rel="stylesheet" href="../../../icing/yui/current/build/cssbase/base.css"/> |
| 708 | + <link rel="stylesheet" href="../../../icing/yui/cssreset/reset.css"/> |
| 709 | + <link rel="stylesheet" href="../../../icing/yui/cssfonts/fonts.css"/> |
| 710 | + <link rel="stylesheet" href="../../../icing/yui/cssbase/base.css"/> |
| 711 | <link rel="stylesheet" href="../../test.css" /> |
| 712 | |
| 713 | <!-- The module under test --> |
| 714 | - <script type="text/javascript" src="../milestone_table.js"></script> |
| 715 | + <script type="text/javascript" src="../milestonetable.js"></script> |
| 716 | |
| 717 | <!-- The test suite --> |
| 718 | <script type="text/javascript" src="test_milestone_table.js"></script> |
| 719 | |
| 720 | === modified file 'lib/canonical/launchpad/javascript/registry/tests/test_milestone_table.js' |
| 721 | --- lib/canonical/launchpad/javascript/registry/tests/test_milestone_table.js 2009-11-25 19:21:59 +0000 |
| 722 | +++ lib/canonical/launchpad/javascript/registry/tests/test_milestone_table.js 2010-02-12 16:34:16 +0000 |
| 723 | @@ -1,11 +1,11 @@ |
| 724 | /* Copyright (c) 2009, Canonical Ltd. All rights reserved. */ |
| 725 | |
| 726 | YUI({ |
| 727 | - base: '../../../icing/yui/current/build/', |
| 728 | + base: '../../../icing/yui/', |
| 729 | filter: 'raw', combine: false |
| 730 | - }).use('test', 'console', 'lp.milestonetable', function(Y) { |
| 731 | + }).use('test', 'console', 'registry.milestonetable', function(Y) { |
| 732 | |
| 733 | - var milestonetable = Y.lp.milestonetable; |
| 734 | + var milestonetable = Y.registry.milestonetable; |
| 735 | var suite = new Y.Test.Suite("milestonetable Tests"); |
| 736 | |
| 737 | suite.add(new Y.Test.Case({ |
| 738 | |
| 739 | === modified file 'lib/canonical/launchpad/javascript/registry/tests/timeline-iframe.html' |
| 740 | --- lib/canonical/launchpad/javascript/registry/tests/timeline-iframe.html 2009-10-08 22:52:35 +0000 |
| 741 | +++ lib/canonical/launchpad/javascript/registry/tests/timeline-iframe.html 2010-02-12 16:34:16 +0000 |
| 742 | @@ -4,10 +4,10 @@ |
| 743 | <title>Launchpad TimelineGraph Widget</title> |
| 744 | |
| 745 | <!-- YUI 3.0 Setup --> |
| 746 | - <script type="text/javascript" src="../../../icing/yui/current/build/yui/yui.js"></script> |
| 747 | - <link rel="stylesheet" href="../../../icing/yui/current/build/cssreset/reset.css"/> |
| 748 | - <link rel="stylesheet" href="../../../icing/yui/current/build/cssfonts/fonts.css"/> |
| 749 | - <link rel="stylesheet" href="../../../icing/yui/current/build/cssbase/base.css"/> |
| 750 | + <script type="text/javascript" src="../../../icing/yui/yui/yui.js"></script> |
| 751 | + <link rel="stylesheet" href="../../../icing/yui/cssreset/reset.css"/> |
| 752 | + <link rel="stylesheet" href="../../../icing/yui/cssfonts/fonts.css"/> |
| 753 | + <link rel="stylesheet" href="../../../icing/yui/cssbase/base.css"/> |
| 754 | |
| 755 | <!-- The module under test --> |
| 756 | <script type="text/javascript" src="../timeline.js"></script> |
| 757 | |
| 758 | === modified file 'lib/canonical/launchpad/javascript/registry/tests/timeline.html' |
| 759 | --- lib/canonical/launchpad/javascript/registry/tests/timeline.html 2009-07-01 02:25:33 +0000 |
| 760 | +++ lib/canonical/launchpad/javascript/registry/tests/timeline.html 2010-02-12 16:34:16 +0000 |
| 761 | @@ -7,6 +7,7 @@ |
| 762 | name="timeline-iframe" |
| 763 | src="timeline-iframe.html" |
| 764 | height="100%" |
| 765 | - width="100%" /> |
| 766 | + width="100%"> |
| 767 | +</iframe> |
| 768 | </body> |
| 769 | </html> |
| 770 | |
| 771 | === modified file 'lib/canonical/launchpad/javascript/registry/tests/timeline.js' |
| 772 | --- lib/canonical/launchpad/javascript/registry/tests/timeline.js 2009-11-25 19:21:59 +0000 |
| 773 | +++ lib/canonical/launchpad/javascript/registry/tests/timeline.js 2010-02-12 16:34:16 +0000 |
| 774 | @@ -1,7 +1,7 @@ |
| 775 | /* Copyright (c) 2009, Canonical Ltd. All rights reserved. */ |
| 776 | |
| 777 | YUI({ |
| 778 | - base: '../../../icing/yui/current/build/', |
| 779 | + base: '../../../icing/yui/', |
| 780 | filter: 'raw', |
| 781 | combine: false |
| 782 | }).use('test', 'console', 'registry.timeline', function(Y) { |
| 783 | |
| 784 | === modified file 'lib/lp/app/templates/base-layout-macros.pt' |
| 785 | --- lib/lp/app/templates/base-layout-macros.pt 2010-02-08 18:21:24 +0000 |
| 786 | +++ lib/lp/app/templates/base-layout-macros.pt 2010-02-12 16:34:16 +0000 |
| 787 | @@ -176,6 +176,8 @@ |
| 788 | <script type="text/javascript" |
| 789 | tal:attributes="src string:${lp_js}/registry/milestoneoverlay.js"></script> |
| 790 | <script type="text/javascript" |
| 791 | + tal:attributes="src string:${lp_js}/registry/milestonetable.js"></script> |
| 792 | + <script type="text/javascript" |
| 793 | tal:attributes="src string:${lp_js}/registry/timeline.js"></script> |
| 794 | <script type="text/javascript" |
| 795 | tal:attributes="src string:${lp_js}/sorttable/sorttable.js"></script> |
| 796 | |
| 797 | === modified file 'lib/lp/registry/browser/__init__.py' |
| 798 | --- lib/lp/registry/browser/__init__.py 2009-10-05 16:41:55 +0000 |
| 799 | +++ lib/lp/registry/browser/__init__.py 2010-02-12 16:34:16 +0000 |
| 800 | @@ -101,7 +101,7 @@ |
| 801 | } |
| 802 | return """ |
| 803 | YUI().use( |
| 804 | - 'node', 'lp.milestoneoverlay', 'lp.milestonetable', |
| 805 | + 'node', 'registry.milestoneoverlay', 'registry.milestonetable', |
| 806 | function (Y) { |
| 807 | |
| 808 | var series_uri = '%(series_api_uri)s'; |
| 809 | @@ -116,15 +116,15 @@ |
| 810 | var config = { |
| 811 | milestone_form_uri: milestone_form_uri, |
| 812 | series_uri: series_uri, |
| 813 | - next_step: Y.lp.milestonetable.get_milestone_row, |
| 814 | + next_step: Y.registry.milestonetable.get_milestone_row, |
| 815 | activate_node: create_milestone_link |
| 816 | }; |
| 817 | - Y.lp.milestoneoverlay.attach_widget(config); |
| 818 | + Y.registry.milestoneoverlay.attach_widget(config); |
| 819 | var table_config = { |
| 820 | milestone_row_uri_template: milestone_row_uri, |
| 821 | milestone_rows_id: milestone_rows_id |
| 822 | } |
| 823 | - Y.lp.milestonetable.setup(table_config); |
| 824 | + Y.registry.milestonetable.setup(table_config); |
| 825 | }); |
| 826 | }); |
| 827 | """ % uris |
| 828 | |
| 829 | === modified file 'lib/lp/registry/browser/tests/productrelease-views.txt' |
| 830 | --- lib/lp/registry/browser/tests/productrelease-views.txt 2010-01-22 03:01:19 +0000 |
| 831 | +++ lib/lp/registry/browser/tests/productrelease-views.txt 2010-02-12 16:34:16 +0000 |
| 832 | @@ -124,7 +124,7 @@ |
| 833 | >>> script = find_tag_by_id(view.render(), 'milestone-script') |
| 834 | >>> print script |
| 835 | <script id="milestone-script" type="text/javascript"> |
| 836 | - LPS.use(... 'lp.milestoneoverlay'... |
| 837 | + LPS.use(... 'registry.milestoneoverlay'... |
| 838 | var milestone_form_uri = '.../app/simple/+addmilestone/++form++'; |
| 839 | var series_uri = '/app/simple'; |
| 840 | ... |
| 841 | |
| 842 | === modified file 'lib/lp/registry/browser/tests/productseries-views.txt' |
| 843 | --- lib/lp/registry/browser/tests/productseries-views.txt 2010-01-20 15:41:25 +0000 |
| 844 | +++ lib/lp/registry/browser/tests/productseries-views.txt 2010-02-12 16:34:16 +0000 |
| 845 | @@ -33,7 +33,7 @@ |
| 846 | >>> script = find_tag_by_id(view.render(), 'milestone-script') |
| 847 | >>> print script |
| 848 | <script id="milestone-script" type="text/javascript"> |
| 849 | - YUI().use(... 'lp.milestoneoverlay', 'lp.milestonetable'... |
| 850 | + YUI().use(... 'registry.milestoneoverlay', 'registry.milestonetable'... |
| 851 | var series_uri = '/app/simple'; |
| 852 | var milestone_form_uri = '.../app/simple/+addmilestone/++form++'; |
| 853 | var milestone_row_uri = |
| 854 | @@ -43,8 +43,8 @@ |
| 855 | var create_milestone_link = Y.get( |
| 856 | '.menu-link-create_milestone'); |
| 857 | create_milestone_link.addClass('js-action');... |
| 858 | - Y.lp.milestoneoverlay.attach_widget(config);... |
| 859 | - Y.lp.milestonetable.setup(table_config);... |
| 860 | + Y.registry.milestoneoverlay.attach_widget(config);... |
| 861 | + Y.registry.milestonetable.setup(table_config);... |
| 862 | |
| 863 | If the Create milestone link is not enabled, the script is not present. |
| 864 | |
| 865 | |
| 866 | === modified file 'lib/lp/registry/templates/distroseries-index.pt' |
| 867 | --- lib/lp/registry/templates/distroseries-index.pt 2009-12-04 00:15:41 +0000 |
| 868 | +++ lib/lp/registry/templates/distroseries-index.pt 2010-02-12 16:34:16 +0000 |
| 869 | @@ -9,9 +9,6 @@ |
| 870 | <metal:block fill-slot="head_epilogue"> |
| 871 | <metal:yui-dependencies |
| 872 | use-macro="context/@@launchpad_widget_macros/yui2calendar-dependencies" /> |
| 873 | - <script type="text/javascript" |
| 874 | - tal:define="lp_js string:${icingroot}/build" |
| 875 | - tal:attributes="src string:${lp_js}/registry/milestone_table.js"></script> |
| 876 | <script id="milestone-script" type="text/javascript" |
| 877 | tal:condition="context/menu:overview/create_milestone/enabled" |
| 878 | tal:content="view/register_milestone_script"></script> |
| 879 | |
| 880 | === modified file 'lib/lp/registry/templates/object-timeline-graph.pt' |
| 881 | --- lib/lp/registry/templates/object-timeline-graph.pt 2009-12-19 18:50:39 +0000 |
| 882 | +++ lib/lp/registry/templates/object-timeline-graph.pt 2010-02-12 16:34:16 +0000 |
| 883 | @@ -34,7 +34,7 @@ |
| 884 | include_inactive = false; |
| 885 | } |
| 886 | |
| 887 | - LPS.use('registry.timeline', 'node', function(Y) { |
| 888 | + LPS.use('registry.timeline', 'node', 'lp.dragscroll', function(Y) { |
| 889 | Y.on('domready', function(e) { |
| 890 | if (Y.UA.ie) { |
| 891 | return; |
| 892 | @@ -88,7 +88,8 @@ |
| 893 | } |
| 894 | }); |
| 895 | |
| 896 | - var drag_scroll_handler = new DragScrollEventHandler(); |
| 897 | + var drag_scroll_handler = |
| 898 | + new Y.lp.dragscroll.DragScrollEventHandler(); |
| 899 | drag_scroll_handler.activate(); |
| 900 | }); |
| 901 | }); |
| 902 | |
| 903 | === modified file 'lib/lp/registry/templates/productrelease-add-from-series.pt' |
| 904 | --- lib/lp/registry/templates/productrelease-add-from-series.pt 2009-12-03 18:33:22 +0000 |
| 905 | +++ lib/lp/registry/templates/productrelease-add-from-series.pt 2010-02-12 16:34:16 +0000 |
| 906 | @@ -14,7 +14,7 @@ |
| 907 | <tal:script |
| 908 | replace="structure |
| 909 | string:<script id='milestone-script' type='text/javascript'>" /> |
| 910 | - LPS.use('node', 'lp.milestoneoverlay', function (Y) { |
| 911 | + LPS.use('node', 'registry.milestoneoverlay', function (Y) { |
| 912 | |
| 913 | // This is a value for the SELECT OPTION which is passed with |
| 914 | // the SELECT's "change" event. It includes some symbols that are not |
| 915 | @@ -57,7 +57,7 @@ |
| 916 | activate_node: create_milestone_link |
| 917 | }; |
| 918 | if (!Y.UA.ie) { |
| 919 | - Y.lp.milestoneoverlay.attach_widget(config); |
| 920 | + Y.registry.milestoneoverlay.attach_widget(config); |
| 921 | } |
| 922 | }); |
| 923 | }); |
| 924 | |
| 925 | === modified file 'lib/lp/registry/templates/productseries-index.pt' |
| 926 | --- lib/lp/registry/templates/productseries-index.pt 2009-11-25 18:04:43 +0000 |
| 927 | +++ lib/lp/registry/templates/productseries-index.pt 2010-02-12 16:34:16 +0000 |
| 928 | @@ -11,9 +11,6 @@ |
| 929 | <metal:block fill-slot="head_epilogue"> |
| 930 | <metal:yui-dependencies |
| 931 | use-macro="context/@@launchpad_widget_macros/yui2calendar-dependencies" /> |
| 932 | - <script type="text/javascript" |
| 933 | - tal:define="lp_js string:${icingroot}/build" |
| 934 | - tal:attributes="src string:${lp_js}/registry/milestone_table.js"></script> |
| 935 | <script id="milestone-script" type="text/javascript" |
| 936 | tal:condition="context/menu:overview/create_milestone/enabled" |
| 937 | tal:content="view/register_milestone_script"></script> |

Summary
-------
Fixed conflicts between YUI module names, namespaces, and filenames.
Implementation details ------- ------- -
-------
The DragScrollEvent Handler was declared as a global instead of canonical/ launchpad/ javascript/ lp/dragscroll. js
in a YUI module, since it doesn't any YUI code. For consistency and
to avoid polluting the global namespace, I moved it into a YUI module.
This involved indenting all the code, so I have also provided a separate
diff at the bottom which shows the non-whitespace changes to the file.
lib/
The milestonetable.js file was being loaded by the productseries- index.pt ex.pt files directly instead of the base layout. This lp/app/ templates/ base-layout- macros. pt lp/registry/ templates/ distroseries- index.pt lp/registry/ templates/ productseries- index.pt
and distroseriesind
is bad since it prevents the js files from being combined.
lib/
lib/
lib/
Just renaming modules, namespaces, or files. The yui directory was current/ build to icing/yui a while ago, and canonical/ launchpad/ javascript/ lp/mapping. js canonical/ launchpad/ javascript/ lp/picker. js canonical/ launchpad/ javascript/ registry/ milestoneoverla y.js canonical/ launchpad/ javascript/ registry/ milestonetable. js canonical/ launchpad/ javascript/ registry/ tests/milestone _table. html canonical/ launchpad/ javascript/ registry/ tests/test_ milestone_ table.js canonical/ launchpad/ javascript/ registry/ tests/timeline- iframe. html canonical/ launchpad/ javascript/ registry/ tests/timeline. html canonical/ launchpad/ javascript/ registry/ tests/timeline. js lp/registry/ browser/ __init_ _.py lp/registry/ browser/ tests/productre lease-views. txt lp/registry/ browser/ tests/productse ries-views. txt lp/registry/ templates/ object- timeline- graph.pt lp/registry/ templates/ productrelease- add-from- series. pt
also moved from icing/yui/
these tests had not been run since then, so I fixed that also.
lib/
lib/
lib/
lib/
lib/
lib/
lib/
lib/
lib/
lib/
lib/
lib/
lib/
lib/
Tests
-----
./bin/test -vv --layer RegistryWindmil lLayer /./lib/ canonical/ launchpad/ javascript/ registry/ tests/milestone _table. html /./lib/ canonical/ launchpad/ javascript/ registry/ tests/timeline. html
file://
file://
Demo and Q/A
------------
* Open https:/ /launchpad. dev/firefox /launchpad. dev/firefox/ trunk /launchpad. dev/ubuntu/ warty /launchpad. dev/people/ +me/+editlocati on /bugs.launchpad .dev/bugs/ 3
* Ensure that timeline graph still shows up and that it can be
dragged if you zoom in until it doesn't fit.
* Open https:/
* The "Create milestone" link should bring up a form overlay,
and submitting the form should cause the milestone to appear
in the table with a green flash.
* Open https:/
* Same test as for the firefox/trunk product series.
* Open https:/
* The map should appear and it should be possible to edit the
location.
* Open https:/
* The "Subscribe someone else" link should bring up a working picker.
Dragscroll diff without whitespace ------- ------- ------- ------
-------
=== modified file 'lib/canonical/ launchpad/ javascript/ lp/dragscroll. js' launchpad/ javascript/ lp/dragscroll. js 2009-10-08 17:13:13 +0000 launchpad/ javascrip. ..
--- lib/canonical/
+++ lib/canonical/