Merge lp:~methanal-developers/methanal/828626-singleton-modal-overlay into lp:methanal

Proposed by Jonathan Jacobs
Status: Merged
Approved by: Tristan Seligmann
Approved revision: 188
Merged at revision: 188
Proposed branch: lp:~methanal-developers/methanal/828626-singleton-modal-overlay
Merge into: lp:methanal
Diff against target: 51 lines (+23/-5)
2 files modified
methanal/js/Methanal/Util.js (+21/-0)
methanal/js/Methanal/Widgets.js (+2/-5)
To merge this branch: bzr merge lp:~methanal-developers/methanal/828626-singleton-modal-overlay
Reviewer Review Type Date Requested Status
Tristan Seligmann Approve
Review via email: mp+72011@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Tristan Seligmann (mithrandi) :
review: Approve
189. By Jonathan Jacobs

Use setModalOverlay in ModalDialog.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'methanal/js/Methanal/Util.js'
2--- methanal/js/Methanal/Util.js 2011-07-17 22:17:49 +0000
3+++ methanal/js/Methanal/Util.js 2011-08-18 10:56:24 +0000
4@@ -1460,3 +1460,24 @@
5 node.scrollIntoView(true);
6 }
7 };
8+
9+
10+
11+/**
12+ * Set the visibility of the modal overlay.
13+ *
14+ * If the modal overlay is already in the requested state no action is taken.
15+ */
16+Methanal.Util.setModalOverlay = function setModalOverlay(visible) {
17+ if (visible && Methanal.Util._modalOverlayNode === null) {
18+ var T = Methanal.Util.DOMBuilder(document);
19+ Methanal.Util._modalOverlayNode = T(
20+ 'div', {'class': 'modal-dialog-overlay'});
21+ document.body.appendChild(Methanal.Util._modalOverlayNode);
22+ } else if (!visible && Methanal.Util._modalOverlayNode !== null) {
23+ document.body.removeChild(Methanal.Util._modalOverlayNode);
24+ Methanal.Util._modalOverlayNode = null;
25+ }
26+};
27+
28+Methanal.Util._modalOverlayNode = null;
29
30=== modified file 'methanal/js/Methanal/Widgets.js'
31--- methanal/js/Methanal/Widgets.js 2011-08-11 14:20:16 +0000
32+++ methanal/js/Methanal/Widgets.js 2011-08-18 10:56:24 +0000
33@@ -1393,10 +1393,7 @@
34 */
35 Nevow.Athena.Widget.subclass(Methanal.Widgets, 'ModalDialog').methods(
36 function nodeInserted(self) {
37- var T = Methanal.Util.DOMBuilder(self.node.ownerDocument);
38- self._overlayNode = T('div', {'class': 'modal-dialog-overlay'});
39- self.node.parentNode.appendChild(self._overlayNode);
40-
41+ Methanal.Util.setModalOverlay(true);
42 Methanal.Util.addElementClass(
43 self.node.ownerDocument.body, 'printing');
44 Methanal.Util.addElementClass(
45@@ -1415,7 +1412,7 @@
46
47 self.detach();
48 self.node.parentNode.removeChild(self.node);
49- self._overlayNode.parentNode.removeChild(self._overlayNode);
50+ Methanal.Util.setModalOverlay(false);
51 });
52
53

Subscribers

People subscribed via source and target branches

to all changes: